{
  "version": "v1",
  "resources": {
    "operations": {
      "methods": {
        "cancel": {
          "request": {
            "$ref": "CancelOperationRequest"
          },
          "flatPath": "v1/operations/{operationsId}:cancel",
          "response": {
            "$ref": "Empty"
          },
          "parameters": {
            "name": {
              "description": "The name of the operation resource to be cancelled.",
              "pattern": "^operations/.*$",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "adsdatahub.operations.cancel",
          "parameterOrder": [
            "name"
          ],
          "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+name}:cancel",
          "httpMethod": "POST"
        },
        "delete": {
          "id": "adsdatahub.operations.delete",
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Empty"
          },
          "flatPath": "v1/operations/{operationsId}",
          "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
          "path": "v1/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "pattern": "^operations/.*$",
              "location": "path",
              "required": true,
              "description": "The name of the operation resource to be deleted."
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "wait": {
          "path": "v1/{+name}:wait",
          "parameters": {
            "name": {
              "location": "path",
              "required": true,
              "description": "The name of the operation resource to wait on.",
              "type": "string",
              "pattern": "^operations/.*$"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameterOrder": [
            "name"
          ],
          "id": "adsdatahub.operations.wait",
          "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
          "httpMethod": "POST",
          "request": {
            "$ref": "WaitOperationRequest"
          },
          "flatPath": "v1/operations/{operationsId}:wait",
          "response": {
            "$ref": "Operation"
          }
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameterOrder": [
            "name"
          ],
          "id": "adsdatahub.operations.list",
          "httpMethod": "GET",
          "path": "v1/{+name}",
          "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
          "flatPath": "v1/operations",
          "response": {
            "$ref": "ListOperationsResponse"
          },
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "The standard list page token."
            },
            "pageSize": {
              "description": "The standard list page size.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "name": {
              "pattern": "^operations$",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the operation's parent resource."
            },
            "filter": {
              "description": "The standard list filter.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
              "type": "boolean",
              "location": "query"
            }
          }
        },
        "get": {
          "parameters": {
            "name": {
              "location": "path",
              "required": true,
              "pattern": "^operations/.*$",
              "description": "The name of the operation resource.",
              "type": "string"
            }
          },
          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
          "path": "v1/{+name}",
          "flatPath": "v1/operations/{operationsId}",
          "httpMethod": "GET",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameterOrder": [
            "name"
          ],
          "id": "adsdatahub.operations.get"
        }
      }
    },
    "outages": {
      "methods": {
        "list": {
          "description": "Lists the outages in descending order of outage start timestamp, and the look back window is 130 days.",
          "parameterOrder": [],
          "path": "v1/outages",
          "parameters": {
            "pageToken": {
              "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Maximum number of items to return. If 0, The server will determine the number of outages to return.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            }
          },
          "id": "adsdatahub.outages.list",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/outages",
          "response": {
            "$ref": "ListOutagesResponse"
          },
          "httpMethod": "GET"
        }
      }
    },
    "customers": {
      "methods": {
        "submitVendorAggregatesReport": {
          "path": "v1/{+customer}:submitVendorAggregatesReport",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.submitVendorAggregatesReport",
          "parameterOrder": [
            "customer"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "customer": {
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "v1/customers/{customersId}:submitVendorAggregatesReport",
          "request": {
            "$ref": "SubmitVendorAggregatesReportRequest"
          },
          "description": "Starts ADH import of a specified BigQuery table populated with the vendor's summary report for a given metric. This is called by the vendor to trigger ADH to generate a discrepancy report based on the Google-computed version of the same data, which will be written to a discrepancy status table."
        },
        "submitBrandLiftBenchmark": {
          "httpMethod": "POST",
          "request": {
            "$ref": "SubmitBrandLiftBenchmarkRequest"
          },
          "id": "adsdatahub.customers.submitBrandLiftBenchmark",
          "path": "v1/{+customer}:submitBrandLiftBenchmark",
          "parameters": {
            "customer": {
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "^customers/[^/]+$"
            }
          },
          "flatPath": "v1/customers/{customersId}:submitBrandLiftBenchmark",
          "response": {
            "$ref": "Operation"
          },
          "description": "Starts ADH import of a specified BigQuery table populated with the quarterly brand lift benchmark report generated by the customer. This is called by the customer to trigger ADH to import the report.",
          "parameterOrder": [
            "customer"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ]
        },
        "generateDv360IvtVideoViewabilityReport": {
          "parameterOrder": [
            "customer"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.customers.generateDv360IvtVideoViewabilityReport",
          "httpMethod": "POST",
          "path": "v1/{+customer}:generateDv360IvtVideoViewabilityReport",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "v1/customers/{customersId}:generateDv360IvtVideoViewabilityReport",
          "description": "Starts the execution of a query to retrieve invalid traffic viewability metrics for the DV360 platform. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status.",
          "request": {
            "$ref": "GenerateDv360IvtVideoViewabilityReportRequest"
          },
          "parameters": {
            "customer": {
              "location": "path",
              "required": true,
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
            }
          }
        },
        "getImportCompletionStatus": {
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameterOrder": [
            "customer"
          ],
          "httpMethod": "GET",
          "description": "Returns the percentage of Google data across all customers that has successfully been ingested into ADH on the given date. The returned value is one of the buckets \"less than 95%\", \"at least 95%\", \"at least 99%\", and \"at least 99.9%\".",
          "id": "adsdatahub.customers.getImportCompletionStatus",
          "parameters": {
            "date.month": {
              "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            },
            "customer": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
            },
            "date.year": {
              "format": "int32",
              "location": "query",
              "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
              "type": "integer"
            },
            "timeZone": {
              "description": "Time zone used when determining the period to retrieve results for. Supported values are \"America/Los_Angeles\" and \"America/New_York\". Defaults to \"America/Los_Angeles\".",
              "type": "string",
              "location": "query"
            },
            "date.day": {
              "type": "integer",
              "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
              "location": "query",
              "format": "int32"
            }
          },
          "path": "v1/{+customer}/importCompletionStatus",
          "flatPath": "v1/customers/{customersId}/importCompletionStatus",
          "response": {
            "$ref": "ImportCompletionStatus"
          }
        },
        "list": {
          "parameterOrder": [],
          "flatPath": "v1/customers",
          "parameters": {
            "pageToken": {
              "description": "Page token, returned by previous call, to request the next page of results, if any.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "format": "int32",
              "location": "query",
              "type": "integer",
              "description": "Maximum number of items to return. If 0, the server will determine the number of customers to return."
            }
          },
          "response": {
            "$ref": "ListCustomersResponse"
          },
          "id": "adsdatahub.customers.list",
          "description": "Lists Ads Data Hub customers to which the current user has access.",
          "path": "v1/customers",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "GET"
        },
        "generateIvtReport": {
          "description": "Starts the execution of a query to retrieve a day-by-day summary of invalid traffic counts for a specific platform. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status. The output table contains 5 rows for each day in the date range. 1 row for each of the 4 device types, and 1 row for all device types. The All row is the sum of the 4 device types for that day. As a result, each column contains twice the total of the number of impressions. If ADH redacts rows due to privacy constraints, the [filtered row summary](https://developers.google.com/ads-data-hub/guides/legacy-diff-checks#filtered_row_summary) (the row with no day) will contain the sum of redacted rows.",
          "path": "v1/{+name}:generateIvtReport",
          "parameterOrder": [
            "name"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "name": {
              "location": "path",
              "required": true,
              "pattern": "^customers/[^/]+$",
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.customers.generateIvtReport",
          "request": {
            "$ref": "GenerateIvtReportRequest"
          },
          "flatPath": "v1/customers/{customersId}:generateIvtReport"
        },
        "exportJobHistory": {
          "parameters": {
            "customer": {
              "description": "Required. ADH customer ID to fetch jobs for, with the format 'customers/123'.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "^customers/[^/]+$"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.customers.exportJobHistory",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "customer"
          ],
          "path": "v1/{+customer}:exportJobHistory",
          "flatPath": "v1/customers/{customersId}:exportJobHistory",
          "httpMethod": "POST",
          "description": "Exports job history of a customer account to customer-selected BigQuery dataset.",
          "request": {
            "$ref": "ExportJobHistoryRequest"
          }
        },
        "submitBrandLiftStudyReport": {
          "response": {
            "$ref": "Operation"
          },
          "path": "v1/{+customer}:submitBrandLiftStudyReport",
          "id": "adsdatahub.customers.submitBrandLiftStudyReport",
          "flatPath": "v1/customers/{customersId}:submitBrandLiftStudyReport",
          "parameters": {
            "customer": {
              "location": "path",
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "description": "Starts ADH import of a specified BigQuery table populated with the brand lift study report generated by the customer. This is called by the customer to trigger ADH to import the report.",
          "parameterOrder": [
            "customer"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "SubmitBrandLiftStudyReportRequest"
          }
        },
        "exportBrandSafetyEntities": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:exportBrandSafetyEntities",
          "request": {
            "$ref": "ExportBrandSafetyEntitiesRequest"
          },
          "path": "v1/{+name}:exportBrandSafetyEntities",
          "httpMethod": "POST",
          "parameterOrder": [
            "name"
          ],
          "id": "adsdatahub.customers.exportBrandSafetyEntities",
          "description": "Starts execution of Brand Safety entity export.",
          "parameters": {
            "name": {
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "required": true,
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
            }
          }
        },
        "submitBrandSafetyScores": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "v1/customers/{customersId}:submitBrandSafetyScores",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.submitBrandSafetyScores",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "description": "Starts ADH import of a specified BigQuery table populated with the vendor's Brand Safety score file. This is called by the vendor to trigger ADH to import the scores.",
          "parameters": {
            "customer": {
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path",
              "required": true,
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "request": {
            "$ref": "SubmitBrandSafetyScoresRequest"
          },
          "path": "v1/{+customer}:submitBrandSafetyScores",
          "parameterOrder": [
            "customer"
          ]
        },
        "describeValidFrequencyLimitingEventMatchers": {
          "response": {
            "$ref": "DescribeValidFrequencyLimitingEventMatchersResponse"
          },
          "path": "v1/{+customer}:describeValidFrequencyLimitingEventMatchers",
          "flatPath": "v1/customers/{customersId}:describeValidFrequencyLimitingEventMatchers",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameters": {
            "pageToken": {
              "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
              "type": "string",
              "location": "query"
            },
            "pageSize": {
              "location": "query",
              "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
              "type": "integer",
              "format": "int32"
            },
            "customer": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "description": "Customer resource name, e.g. 'customers/123'.",
              "location": "path",
              "required": true
            },
            "filter": {
              "description": "Restrict which event matchers are returned. Accepts filters on all the sub-fields of event_matcher, event_matcher_metadata.entity, and event_matcher_metadata.parent_event_matcher. Example filters: event_matcher.value = 1234 event_matcher.match_type = DV360_LINE_ITEM_ID OR event_matcher.match_type = DV360_INSERTION_ORDER_ID event_matcher_metadata.display_name = \"Campaign 456\" event_matcher_metadata.entity.entity_id = 5678 event_matcher_metadata.entity.display_name = \"Customer 123\" event_matcher_metadata.entity.type = GMP_DV360_ADVERTISER event_matcher_metadata.parent_event_matcher.value = 6789 event_matcher_metadata.parent_event_matcher.match_type = DV360_INSERTION_ORDER_ID",
              "type": "string",
              "location": "query"
            },
            "adsDataCustomerId": {
              "type": "string",
              "format": "int64",
              "location": "query",
              "description": "Ads Data Owning customer's ID, e.g. 456."
            }
          },
          "id": "adsdatahub.customers.describeValidFrequencyLimitingEventMatchers",
          "description": "Lists valid event matchers along with their metadata for frequency capping audience lists. Each event matcher has metadata that includes, for example, an owning AdsDataLink.Entity and a name for the corresponding campaign or line item.",
          "parameterOrder": [
            "customer"
          ],
          "httpMethod": "GET",
          "deprecated": true
        },
        "submitVendorReportIdMapping": {
          "description": "Starts ADH import of a specified BigQuery table populated with the mapping between customer defined report ID and Google campaign ID. This is called by the customer to trigger ADH to import the mapping.",
          "flatPath": "v1/customers/{customersId}:submitVendorReportIdMapping",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameterOrder": [
            "customer"
          ],
          "id": "adsdatahub.customers.submitVendorReportIdMapping",
          "request": {
            "$ref": "SubmitVendorReportIdMappingRequest"
          },
          "parameters": {
            "customer": {
              "location": "path",
              "required": true,
              "pattern": "^customers/[^/]+$",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string"
            }
          },
          "path": "v1/{+customer}:submitVendorReportIdMapping"
        },
        "get": {
          "parameters": {
            "name": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "description": "Required. Full resource name, e.g. 'customers/123'.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.customers.get",
          "parameterOrder": [
            "name"
          ],
          "httpMethod": "GET",
          "path": "v1/{+name}",
          "response": {
            "$ref": "Customer"
          },
          "description": "Retrieves the requested Ads Data Hub customer.",
          "flatPath": "v1/customers/{customersId}"
        }
      },
      "resources": {
        "outboundCustomerLinks": {
          "methods": {
            "list": {
              "flatPath": "v1/customers/{customersId}/outboundCustomerLinks",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              },
              "id": "adsdatahub.customers.outboundCustomerLinks.list",
              "httpMethod": "GET",
              "path": "v1/{+parent}/outboundCustomerLinks",
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists links where the specified customer has granted access to other Ads Data Hub customers. Only direct links are included.",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "type": "string"
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                },
                "filter": {
                  "description": "Filters your response. Works using the following fields / formatting: name=\"customers/1/outboundCustomerLinks/3141\" customer_id=\"314159\" display_name=\"Some account\" status=\"REJECTED\" update_time.seconds\u003eunix_time",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "inboundCustomerLinks": {
          "methods": {
            "list": {
              "parameterOrder": [
                "parent"
              ],
              "id": "adsdatahub.customers.inboundCustomerLinks.list",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/inboundCustomerLinks",
              "description": "Lists links where another Ads Data Hub customer has granted access to the specified customer. Both direct and indirect (propagated through management) links are included.",
              "path": "v1/{+parent}/inboundCustomerLinks",
              "parameters": {
                "filter": {
                  "location": "query",
                  "description": "Filters your response. Works using the following fields / formatting: name=\"customers/1/outboundCustomerLinks/3141\" customer_id=\"314159\" display_name=\"Some account\" status=\"REJECTED\" update_time.seconds\u003eunix_time",
                  "type": "string"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
                  "type": "integer",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                }
              }
            }
          }
        },
        "crmBasedUserListQueries": {
          "methods": {
            "updateReport": {
              "parameterOrder": [
                "name"
              ],
              "request": {
                "$ref": "Report"
              },
              "httpMethod": "PATCH",
              "description": "Updates CRM based user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.crmBasedUserListQueries.updateReport",
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "response": {
                "$ref": "Report"
              },
              "parameters": {
                "name": {
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$"
                }
              }
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "id": "adsdatahub.customers.crmBasedUserListQueries.patch",
              "parameters": {
                "updateMask": {
                  "description": "Field mask used to support partial updates.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form: customers/[customer_id]/crmBasedUserListQueries/[resource_id], e.g. 'customers/123/crmBasedUserListQueries/abcd1234'. The resource ID is generated by the server.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$"
                }
              },
              "request": {
                "$ref": "CrmBasedUserListQuery"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Updates an existing CRM based user list query. Partial updates are supported. Please review the CrmBasedUserListQuery resource to see which fields can be updated.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "httpMethod": "PATCH"
            },
            "create": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "CrmBasedUserListQuery"
              },
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "description": "Creates a CRM based user list query for later execution. No query validation is performed at this time.",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "POST",
              "id": "adsdatahub.customers.crmBasedUserListQueries.create",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "parameters": {
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$"
                }
              }
            },
            "validate": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/crmBasedUserListQueries:validate",
              "description": "Performs static validation checks on the provided CRM based user list query to ensure valid output schema.",
              "httpMethod": "POST",
              "request": {
                "$ref": "ValidateCrmBasedUserListQueryRequest"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.validate",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries:validate",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ValidateCrmBasedUserListQueryResponse"
              }
            },
            "getReport": {
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'."
                }
              },
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "description": "Retrieves the requested CRM based user list report.",
              "response": {
                "$ref": "Report"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.crmBasedUserListQueries.getReport"
            },
            "list": {
              "description": "Lists the CRM based user list queries owned by the specified customer.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "parent": {
                  "type": "string",
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return."
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "location": "query",
                  "type": "string"
                },
                "filter": {
                  "description": "Filters your response. Works using the following fields / formatting: name=”customers/271828/crmBasedUserListQueries/pi314159265359” title=”up_and_right” query_text=\"SELECT LN(2.7182818284);\" query_state=\"RUNNABLE\" update_time\u003eunix_seconds update_email=”abc@gmail.com” create_time\u003eunix_seconds create_email=”abc@gmail.com”",
                  "location": "query",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "ListCrmBasedUserListQueriesResponse"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.list",
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "httpMethod": "GET"
            },
            "get": {
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/crmBasedUserListQueries/abcd1234'."
                }
              },
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "description": "Retrieves the requested CRM based user list query.",
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.crmBasedUserListQueries.get",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET"
            },
            "delete": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "DELETE",
              "description": "Deletes a CRM based user list query.",
              "id": "adsdatahub.customers.crmBasedUserListQueries.delete",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "description": "Required. The full name of the CRM based user list query to delete. This is of the form 'customers/[customer_id]/crmBasedUserListQueries/[resource_id]', e.g. 'customers/123/crmBasedUserListQueries/resource123'.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "response": {
                "$ref": "Empty"
              },
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}"
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.getSchedule",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Retrieves the requested CRM based user list schedule.",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "type": "string",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report/schedule'."
                    }
                  },
                  "response": {
                    "$ref": "Schedule"
                  },
                  "path": "v1/{+name}"
                },
                "start": {
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "StartCrmBasedUserListReportRequest"
                  },
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "path": "v1/{+name}:start",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'.",
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.start",
                  "description": "Starts execution on a stored CRM based user list report.",
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report:start"
                },
                "updateSchedule": {
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule",
                  "parameters": {
                    "name": {
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "Schedule"
                  },
                  "description": "Updates CRM based user list schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "path": "v1/{+name}",
                  "request": {
                    "$ref": "Schedule"
                  },
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.updateSchedule",
                  "httpMethod": "PATCH",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ]
                }
              }
            }
          }
        },
        "analysisQueries": {
          "methods": {
            "create": {
              "description": "Creates an analysis query for later execution. No query validation is performed at this time.",
              "parameters": {
                "parent": {
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v1/{+parent}/analysisQueries",
              "request": {
                "$ref": "AnalysisQuery"
              },
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "AnalysisQuery"
              },
              "id": "adsdatahub.customers.analysisQueries.create",
              "httpMethod": "POST"
            },
            "startTransient": {
              "httpMethod": "POST",
              "id": "adsdatahub.customers.analysisQueries.startTransient",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "parent": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$"
                }
              },
              "request": {
                "$ref": "StartTransientAnalysisQueryRequest"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries:startTransient",
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/analysisQueries:startTransient",
              "response": {
                "$ref": "Operation"
              },
              "description": "Starts execution on a transient analysis query. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status."
            },
            "updateReport": {
              "response": {
                "$ref": "Report"
              },
              "httpMethod": "PATCH",
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report",
              "request": {
                "$ref": "Report"
              },
              "id": "adsdatahub.customers.analysisQueries.updateReport",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$"
                }
              },
              "description": "Updates analysis report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ]
            },
            "patch": {
              "parameters": {
                "updateMask": {
                  "type": "string",
                  "location": "query",
                  "description": "Field mask used to support partial updates.",
                  "format": "google-fieldmask"
                },
                "name": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form customers/[customer_id]/analysisQueries/[resource_id], e.g. 'customers/123/analysisQueries/abcd1234'. The resource ID is generated by the server.",
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "request": {
                "$ref": "AnalysisQuery"
              },
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Updates an existing analysis query. Partial updates are supported. Please review the AnalysisQuery resource to see which fields can be updated.",
              "httpMethod": "PATCH",
              "response": {
                "$ref": "AnalysisQuery"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "id": "adsdatahub.customers.analysisQueries.patch"
            },
            "delete": {
              "description": "Deletes an analysis query.",
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.analysisQueries.delete",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The full name of the analysis query to delete. This is of the form 'customers/[customer_id]/analysisQueries/[resource_id]', e.g. 'customers/123/analysisQueries/resource123'.",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "response": {
                "$ref": "Empty"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}"
            },
            "list": {
              "flatPath": "v1/customers/{customersId}/analysisQueries",
              "response": {
                "$ref": "ListAnalysisQueriesResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "description": "Lists the analysis queries owned by the specified customer.",
              "id": "adsdatahub.customers.analysisQueries.list",
              "path": "v1/{+parent}/analysisQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "filter": {
                  "type": "string",
                  "description": "Filters your response. Works using the following fields / formatting: name=”customers/271828/analysisQueries/pi314159265359” title=”up_and_right” query_text=\"SELECT LN(2.7182818284);\" query_state=\"RUNNABLE\" update_time\u003eunix_seconds update_email=”abc@gmail.com” create_time\u003eunix_seconds create_email=”abc@gmail.com”",
                  "location": "query"
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any."
                }
              }
            },
            "getReport": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "Report"
              },
              "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report",
              "description": "Retrieves the requested analysis report.",
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report",
              "httpMethod": "GET",
              "id": "adsdatahub.customers.analysisQueries.getReport",
              "parameterOrder": [
                "name",
                "v1Id",
                "analysisQueriesId"
              ],
              "parameters": {
                "v1Id": {
                  "type": "string",
                  "location": "path",
                  "required": true
                },
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                  "pattern": "^customers$",
                  "type": "string"
                },
                "analysisQueriesId": {
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              }
            },
            "get": {
              "response": {
                "$ref": "AnalysisQuery"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "httpMethod": "GET",
              "id": "adsdatahub.customers.analysisQueries.get",
              "description": "Retrieves the requested analysis query.",
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "type": "string"
                }
              },
              "path": "v1/{+name}"
            },
            "validate": {
              "id": "adsdatahub.customers.analysisQueries.validate",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/analysisQueries:validate",
              "response": {
                "$ref": "ValidateAnalysisQueryResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'."
                }
              },
              "request": {
                "$ref": "ValidateAnalysisQueryRequest"
              },
              "path": "v1/{+parent}/analysisQueries:validate",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Performs static validation checks on the provided analysis query."
            },
            "start": {
              "request": {
                "$ref": "StartAnalysisQueryRequest"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}:start",
              "description": "Starts execution on a stored analysis query. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status.",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Operation"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}:start",
              "id": "adsdatahub.customers.analysisQueries.start",
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$"
                }
              }
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "response": {
                    "$ref": "Schedule"
                  },
                  "id": "adsdatahub.customers.analysisQueries.report.getSchedule",
                  "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "description": "Retrieves the requested analysis schedule.",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "parameters": {
                    "v1Id": {
                      "type": "string",
                      "location": "path",
                      "required": true
                    },
                    "analysisQueriesId": {
                      "type": "string",
                      "location": "path",
                      "required": true
                    },
                    "name": {
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report/schedule'.",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "pattern": "^customers$"
                    }
                  },
                  "parameterOrder": [
                    "name",
                    "v1Id",
                    "analysisQueriesId"
                  ],
                  "httpMethod": "GET"
                },
                "updateSchedule": {
                  "httpMethod": "PATCH",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "description": "Updates analysis schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "path": "v1/{+name}",
                  "id": "adsdatahub.customers.analysisQueries.report.updateSchedule",
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report/schedule$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "Schedule"
                  }
                },
                "start": {
                  "id": "adsdatahub.customers.analysisQueries.report.start",
                  "request": {
                    "$ref": "StartAnalysisReportRequest"
                  },
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Starts execution on a stored analysis report.",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report:start",
                  "path": "v1/{+name}:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "name"
                  ]
                }
              }
            }
          }
        },
        "panelists": {
          "methods": {
            "revokeConsent": {
              "request": {
                "$ref": "RevokeConsentRequest"
              },
              "description": "Revokes one type of consent for a panelist.",
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "Empty"
              },
              "path": "v1/{+name}:revokeConsent",
              "id": "adsdatahub.customers.panelists.revokeConsent",
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:revokeConsent",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'."
                }
              }
            },
            "createTempMatchedEventData": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "CreateTempMatchedEventDataRequest"
              },
              "parameters": {
                "customer": {
                  "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v1/{+customer}/panelists:createTempMatchedEventData",
              "response": {
                "$ref": "Operation"
              },
              "flatPath": "v1/customers/{customersId}/panelists:createTempMatchedEventData",
              "parameterOrder": [
                "customer"
              ],
              "httpMethod": "POST",
              "description": "Creates temp table with panelist matched event data. The results will be written to the specified destination temp table.",
              "id": "adsdatahub.customers.panelists.createTempMatchedEventData"
            },
            "checkConsent": {
              "description": "Returns the time at which the panelist first granted the currently-open consent of the consentType indicated in the request. Returns NOT_FOUND if no such consent has ever been given, or if all such consents have been revoked.",
              "path": "v1/{+name}:checkConsent",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'."
                }
              },
              "id": "adsdatahub.customers.panelists.checkConsent",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "CheckConsentResponse"
              },
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:checkConsent",
              "request": {
                "$ref": "CheckConsentRequest"
              }
            },
            "generateConsentInviteCode": {
              "httpMethod": "POST",
              "response": {
                "$ref": "GenerateConsentInviteCodeResponse"
              },
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:generateConsentInviteCode",
              "description": "Creates a consent invite code for the specified panelist. Creates the panelist if the panelist does not already exist. Users may employ any scheme for choosing unique integer panelist IDs, and are strongly encouraged to use a hashed or encrypted form of their own IDs.",
              "id": "adsdatahub.customers.panelists.generateConsentInviteCode",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "GenerateConsentInviteCodeRequest"
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}:generateConsentInviteCode"
            },
            "exportEvents": {
              "parameters": {
                "customer": {
                  "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "customer"
              ],
              "response": {
                "$ref": "Operation"
              },
              "path": "v1/{+customer}/panelists:exportEvents",
              "flatPath": "v1/customers/{customersId}/panelists:exportEvents",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Exports panelists event level data.",
              "id": "adsdatahub.customers.panelists.exportEvents",
              "request": {
                "$ref": "ExportEventsRequest"
              }
            }
          }
        },
        "userLists": {
          "methods": {
            "delete": {
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "httpMethod": "DELETE",
              "response": {
                "$ref": "UserList"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Delete the requested Ads Data Hub-managed user list.",
              "parameters": {
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userLists.delete"
            },
            "get": {
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested Ads Data Hub-managed user list.",
              "response": {
                "$ref": "UserList"
              },
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userLists.get",
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$"
                }
              }
            },
            "generateFrequencyListMemberships": {
              "httpMethod": "POST",
              "deprecated": true,
              "id": "adsdatahub.customers.userLists.generateFrequencyListMemberships",
              "request": {
                "$ref": "GenerateFrequencyListMembershipsRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}:generateFrequencyListMemberships",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:generateFrequencyListMemberships",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType FREQUENCY_BASED.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Generate memberships for the UserList. The UserList must have UserListType FREQUENCY_BASED."
            },
            "list": {
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results."
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                },
                "filter": {
                  "location": "query",
                  "description": "Example filter: title = \"user*\" AND title = \"*name*\" AND -type = FREQUENCY_BASED AND create_email = \"creator@email.com\" AND list_size \u003e 10 AND populate_time \u003e \"2012-04-21T11:30:00-04:00\"",
                  "type": "string"
                },
                "view": {
                  "location": "query",
                  "description": "Specifies which fields to include in each user list.",
                  "enum": [
                    "USER_LIST_VIEW_UNSPECIFIED",
                    "BASIC",
                    "FULL"
                  ],
                  "enumDescriptions": [
                    "The default / unset value. The API will default to the FULL view.",
                    "Include fields except [recipient_ads_data_links].",
                    "Include everything."
                  ],
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of user lists to return.",
                  "format": "int32"
                },
                "showDeleted": {
                  "location": "query",
                  "type": "boolean",
                  "description": "If set to true, deleted user lists will be included in the response."
                }
              },
              "description": "Lists the user lists managed by the specified Ads Data Hub customer.",
              "path": "v1/{+parent}/userLists",
              "id": "adsdatahub.customers.userLists.list",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/userLists",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListUserListsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "create": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Creates an Ads Data Hub-managed user list.",
              "path": "v1/{+parent}/userLists",
              "parameters": {
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. The parent resource name that owns the user list, e.g. 'customers/123'.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "UserList"
              },
              "request": {
                "$ref": "UserList"
              },
              "flatPath": "v1/customers/{customersId}/userLists",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userLists.create"
            },
            "addRecipients": {
              "response": {
                "$ref": "UserList"
              },
              "path": "v1/{+userList}:addRecipients",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addRecipients",
              "parameters": {
                "userList": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name of the user list to be updated. Has the form of customers/[customer_id]/userLists/[userlist_id]"
                }
              },
              "request": {
                "$ref": "AddRecipientsRequest"
              },
              "id": "adsdatahub.customers.userLists.addRecipients",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "description": "Add entities to an Ads Data Hub-managed user list’s recipients. Supported entities are: - Google Ads Customer - DV360 Partner - DV360 Advertiser These entities must be linked to the ads data customer associated with the UserList.",
              "parameterOrder": [
                "userList"
              ]
            },
            "updateCrmBasedUserListMemberships": {
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userLists.updateCrmBasedUserListMemberships",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Operation"
              },
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:updateCrmBasedUserListMemberships",
              "parameters": {
                "name": {
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType CRM_BASED.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Update memberships for the UserList. The UserList must have UserListType CRM_BASED.",
              "request": {
                "$ref": "UpdateCrmBasedUserListMembershipsRequest"
              },
              "path": "v1/{+name}:updateCrmBasedUserListMemberships"
            },
            "addEventMatchers": {
              "description": "Adds event matchers to a frequency-based user list. This call cannot delete existing event matchers or modify frequency-based constraint metadata such as window or when a user is added. The user list may already contain some event matchers. For example, this call could add: AddEventMatchersRequest { user_list: \"customers/1/userLists/12345\" event_matchers { match_type: GOOGLE_ADS_CAMPAIGN_ID value: \"3456\" } } For this call to succeed, user list 12345 should not already contain a campaign constraint of the type GOOGLE_ADS_CAMPAIGN_ID with campaign id \"3456\".",
              "parameters": {
                "userList": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, has the form of ‘customers/[customer_id]/userLists/[userlist_id]’. UserList must have UserListType FREQUENCY_BASED."
                }
              },
              "parameterOrder": [
                "userList"
              ],
              "deprecated": true,
              "id": "adsdatahub.customers.userLists.addEventMatchers",
              "httpMethod": "POST",
              "response": {
                "$ref": "UserList"
              },
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addEventMatchers",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "AddEventMatchersRequest"
              },
              "path": "v1/{+userList}:addEventMatchers"
            },
            "patch": {
              "httpMethod": "PATCH",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "updateMask": {
                  "description": "Required. Field mask to support partial updates. Only the following paths may be updated via the API: - title - description - recipient_ads_data_links",
                  "location": "query",
                  "format": "google-fieldmask",
                  "type": "string"
                },
                "name": {
                  "description": "Output only. Immutable. Name that uniquely identifies an Ads Data Hub user list. It has the form customers/[customer_id]/userLists/[user_list_id]",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "UserList"
              },
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "id": "adsdatahub.customers.userLists.patch",
              "response": {
                "$ref": "UserList"
              },
              "description": "Updates the requested Ads Data Hub-managed user list."
            },
            "removeRecipients": {
              "parameters": {
                "userList": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "description": "Required. Full resource name of the user list to be updated. Has the form of customers/[customer_id]/userLists/[userlist_id]",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "RemoveRecipientsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userLists.removeRecipients",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:removeRecipients",
              "path": "v1/{+userList}:removeRecipients",
              "httpMethod": "POST",
              "response": {
                "$ref": "UserList"
              },
              "description": "Removes entities from an Ads Data Hub-managed user list’s recipients. Supported entities are: - Google Ads Customer - DV360 Partner - DV360 Advertiser These entities must be linked to the ads data customer associated with the UserList.",
              "parameterOrder": [
                "userList"
              ]
            }
          }
        },
        "tempTables": {
          "methods": {
            "list": {
              "parameters": {
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables to return.",
                  "format": "int32",
                  "type": "integer",
                  "location": "query"
                },
                "adsDataCustomerId": {
                  "type": "string",
                  "location": "query",
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "format": "int64"
                },
                "queryType": {
                  "enumDescriptions": [
                    "No query type specified.",
                    "An AnalysisQuery.",
                    "A UserListQuery.",
                    "A query triggered by a special endpoint."
                  ],
                  "description": "Type of query that created the tables. Temp tables are only accessible to to queries of the same type.",
                  "type": "string",
                  "location": "query",
                  "enum": [
                    "QUERY_TYPE_UNSPECIFIED",
                    "ANALYSIS",
                    "USER_LIST",
                    "SPECIAL_ENDPOINT"
                  ]
                },
                "parent": {
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+$"
                },
                "matchDataCustomerId": {
                  "type": "string",
                  "format": "int64",
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any. The page token must have been returned by a call with the same request parameters.",
                  "location": "query",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Lists the Ads Data Hub temp tables that the customer has created. Temp tables are created for a specific ads data customer ID, match data customer ID, and query type.",
              "httpMethod": "GET",
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/customers/{customersId}/tempTables",
              "path": "v1/{+parent}/tempTables",
              "response": {
                "$ref": "ListTempTablesResponse"
              },
              "id": "adsdatahub.customers.tempTables.list"
            },
            "get": {
              "httpMethod": "GET",
              "description": "Retrieves the requested Ads Data Hub temp table.",
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.tempTables.get",
              "response": {
                "$ref": "TempTable"
              },
              "flatPath": "v1/customers/{customersId}/tempTables/{tempTablesId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/tempTables/[^/]+$",
                  "type": "string",
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/resource-id'."
                }
              },
              "path": "v1/{+name}"
            }
          }
        },
        "userListQueries": {
          "resources": {
            "report": {
              "methods": {
                "start": {
                  "path": "v1/{+name}:start",
                  "description": "Starts execution on a stored remarketing user list report.",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                      "location": "path",
                      "required": true,
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                      "type": "string"
                    }
                  },
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report:start",
                  "id": "adsdatahub.customers.userListQueries.report.start",
                  "request": {
                    "$ref": "StartRemarketingUserListReportRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "POST"
                },
                "getSchedule": {
                  "id": "adsdatahub.customers.userListQueries.report.getSchedule",
                  "description": "Retrieves the requested remarketing user list schedule.",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "path": "v1/{+name}",
                  "parameters": {
                    "name": {
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report/schedule'.",
                      "location": "path",
                      "required": true,
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ]
                },
                "updateSchedule": {
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Updates remarketing user list schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "id": "adsdatahub.customers.userListQueries.report.updateSchedule",
                  "request": {
                    "$ref": "Schedule"
                  },
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$",
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}",
                  "httpMethod": "PATCH"
                }
              }
            }
          },
          "methods": {
            "create": {
              "id": "adsdatahub.customers.userListQueries.create",
              "request": {
                "$ref": "UserListQuery"
              },
              "parameters": {
                "parent": {
                  "type": "string",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/userListQueries",
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "response": {
                "$ref": "UserListQuery"
              },
              "description": "Creates a user list query for later execution. No query validation is performed at this time.",
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ]
            },
            "start": {
              "request": {
                "$ref": "StartUserListQueryRequest"
              },
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$"
                }
              },
              "description": "Starts execution on a stored user list query. The results uploaded to the specified Google Ads user list. The returned operation name can be used to poll for query completion status.",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}:start",
              "httpMethod": "POST",
              "response": {
                "$ref": "Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userListQueries.start",
              "path": "v1/{+name}:start"
            },
            "delete": {
              "path": "v1/{+name}",
              "response": {
                "$ref": "Empty"
              },
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "description": "Required. The full name of the user list query to delete. This is of the form 'customers/[customer_id]/userListQueries/[resource_id]', e.g. 'customers/123/userListQueries/resource123'."
                }
              },
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "description": "Deletes a user list query.",
              "id": "adsdatahub.customers.userListQueries.delete",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "DELETE",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "list": {
              "response": {
                "$ref": "ListUserListQueriesResponse"
              },
              "path": "v1/{+parent}/userListQueries",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return.",
                  "format": "int32"
                },
                "parent": {
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$"
                },
                "filter": {
                  "location": "query",
                  "description": "Filters your response. Works using the following fields / formatting: name=”customers/271828/userListQueries/pi314159265359” title=”up_and_right” query_text=\"SELECT LN(2.7182818284);\" query_state=\"RUNNABLE\" update_time\u003eunix_seconds update_email=”abc@gmail.com” create_time\u003eunix_seconds create_email=”abc@gmail.com”",
                  "type": "string"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "type": "string",
                  "location": "query"
                }
              },
              "id": "adsdatahub.customers.userListQueries.list",
              "description": "Lists the user list queries owned by the specified customer."
            },
            "get": {
              "path": "v1/{+name}",
              "description": "Retrieves the requested user list query.",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "UserListQuery"
              },
              "id": "adsdatahub.customers.userListQueries.get",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "Required. Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            },
            "getReport": {
              "id": "adsdatahub.customers.userListQueries.getReport",
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$"
                }
              },
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "description": "Retrieves the requested remarketing user list report.",
              "response": {
                "$ref": "Report"
              },
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "validate": {
              "path": "v1/{+parent}/userListQueries:validate",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userListQueries.validate",
              "request": {
                "$ref": "ValidateUserListQueryRequest"
              },
              "description": "Performs static validation checks on the provided user list query.",
              "response": {
                "$ref": "ValidateUserListQueryResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries:validate",
              "parameters": {
                "parent": {
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ]
            },
            "updateReport": {
              "response": {
                "$ref": "Report"
              },
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report"
                }
              },
              "id": "adsdatahub.customers.userListQueries.updateReport",
              "parameterOrder": [
                "name"
              ],
              "description": "Updates remarketing user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "Report"
              }
            },
            "patch": {
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "description": "Updates an existing user list query. Partial updates are supported. Please review the UserListQuery resource to see which fields can be updated.",
              "httpMethod": "PATCH",
              "id": "adsdatahub.customers.userListQueries.patch",
              "response": {
                "$ref": "UserListQuery"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "request": {
                "$ref": "UserListQuery"
              },
              "parameters": {
                "updateMask": {
                  "format": "google-fieldmask",
                  "type": "string",
                  "description": "Field mask used to support partial updates.",
                  "location": "query"
                },
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form customers/[customer_id]/userListQueries/[resource_id], e.g. 'customers/123/userListQueries/abcd1234'. The resource ID is generated by the server.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$"
                }
              }
            },
            "startTransient": {
              "request": {
                "$ref": "StartTransientUserListQueryRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "parent": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'."
                }
              },
              "id": "adsdatahub.customers.userListQueries.startTransient",
              "description": "Starts execution on a transient user list query. The results uploaded to the specified Google Ads user list. The returned operation name can be used to poll for query completion status.",
              "path": "v1/{+parent}/userListQueries:startTransient",
              "deprecated": true,
              "flatPath": "v1/customers/{customersId}/userListQueries:startTransient",
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "Operation"
              }
            }
          }
        },
        "tables": {
          "methods": {
            "get": {
              "description": "Retrieves the requested Ads Data Hub table.",
              "path": "v1/{+name}",
              "flatPath": "v1/customers/{customersId}/tables/{tablesId}",
              "parameters": {
                "matchDataCustomerId": {
                  "type": "string",
                  "format": "int64",
                  "location": "query",
                  "description": "Optional. Specific linked Ads Data Hub customer ID that owns the match data for the query. Only relevant if the table is an ADH table with match data. Defaults to all linked customers."
                },
                "adsDataCustomerId": {
                  "description": "Optional. Specific linked Ads Data Hub customer ID that owns the ads data used by the table. Only relevant if the table is an ADH table with ads data. Defaults to all linked customers.",
                  "location": "query",
                  "format": "int64",
                  "type": "string"
                },
                "name": {
                  "pattern": "^customers/[^/]+/tables/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/adh.google_ads_impressions.",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "Table"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.tables.get",
              "httpMethod": "GET"
            },
            "list": {
              "path": "v1/{+parent}/tables",
              "parameters": {
                "matchDataCustomerId": {
                  "type": "string",
                  "location": "query",
                  "format": "int64",
                  "description": "Optional. Specific linked Ads Data Hub customer ID that owns the match data for the query. Defaults to all the linked customers."
                },
                "pageSize": {
                  "format": "int32",
                  "type": "integer",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables to return."
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any. The page token must have been returned by a call with the same request parameters.",
                  "type": "string",
                  "location": "query"
                },
                "adsDataCustomerId": {
                  "description": "Optional. Specific linked Ads Data Hub customer ID that owns the ads data used by the tables. Defaults to all the linked customers.",
                  "type": "string",
                  "format": "int64",
                  "location": "query"
                },
                "parent": {
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Lists the Ads Data Hub tables to which the specified customer has access.",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "ListTablesResponse"
              },
              "id": "adsdatahub.customers.tables.list",
              "flatPath": "v1/customers/{customersId}/tables"
            }
          }
        },
        "adsDataCustomers": {
          "methods": {
            "get": {
              "response": {
                "$ref": "AdsDataCustomer"
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}",
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Retrieves the requested Ads Data Hub customer.",
              "id": "adsdatahub.customers.adsDataCustomers.get",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+$",
                  "description": "Required. Full resource name, e.g. 'customers/123/adsDataCustomers/456'.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              }
            },
            "getDataAccessBudget": {
              "path": "v1/{+name}",
              "parameters": {
                "name": {
                  "description": "Required. Name of the data access budget. Format: customers/{customer_id}/adsDataCustomers/{ads_data_customer_id}/dataAccessBudget e.g. 'customers/123/adsDataCustomers/456/dataAccessBudget'.",
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+/dataAccessBudget$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.adsDataCustomers.getDataAccessBudget",
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}/dataAccessBudget",
              "httpMethod": "GET",
              "response": {
                "$ref": "DataAccessBudget"
              },
              "description": "Retrieves the data access budget for the requested ads data source for the last 366 days.",
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "flatPath": "v1/customers/{customersId}/adsDataCustomers",
              "id": "adsdatahub.customers.adsDataCustomers.list",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "ListAdsDataCustomersResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageToken": {
                  "description": "Page token, returned by previous call, to request the next page of results, if any.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of ads data customers to return.",
                  "location": "query",
                  "type": "integer"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. The customer associated with these ads data customers. Format: customers/{customer}",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v1/{+parent}/adsDataCustomers",
              "description": "Lists ads data customers accessible from the customer.",
              "httpMethod": "GET"
            }
          }
        },
        "adsDataLinks": {
          "methods": {
            "list": {
              "id": "adsdatahub.customers.adsDataLinks.list",
              "flatPath": "v1/customers/{customersId}/adsDataLinks",
              "response": {
                "$ref": "ListAdsDataLinksResponse"
              },
              "httpMethod": "GET",
              "description": "Lists links between the specified customer and other Google advertising entities.",
              "path": "v1/{+parent}/adsDataLinks",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
                  "format": "int32",
                  "location": "query"
                },
                "parent": {
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "filter": {
                  "description": "Filters your response. Works using the following fields / formatting: name=\"customers/1/adsDataLinks/CNC0w8IFEAEYAQ\" platform=\"GOOGLE_ADS\" status=\"PENDING\" create&lowbar;time.seconds\u003eunix_seconds update&lowbar;time.seconds\u003eunix_seconds vendor_client_id=\"vendor_customer\" metrics=\"VIEWABILITY\"",
                  "type": "string",
                  "location": "query"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "batchApprove": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "path": "v1/{+parent}/adsDataLinks:batchApprove",
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchApprove",
              "description": "Approve a list of pending ads data links.",
              "response": {
                "$ref": "BatchApproveAdsDataLinksResponse"
              },
              "id": "adsdatahub.customers.adsDataLinks.batchApprove",
              "request": {
                "$ref": "BatchApproveAdsDataLinksRequest"
              },
              "parameters": {
                "parent": {
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to approve must be under this customer.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+$"
                }
              },
              "parameterOrder": [
                "parent"
              ]
            },
            "batchReject": {
              "description": "Reject a list of pending ads data links.",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.adsDataLinks.batchReject",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "BatchRejectAdsDataLinksResponse"
              },
              "path": "v1/{+parent}/adsDataLinks:batchReject",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchReject",
              "request": {
                "$ref": "BatchRejectAdsDataLinksRequest"
              },
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to reject must be under this customer.",
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "canonicalName": "Ads Data Hub",
  "discoveryVersion": "v1",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/adsdatahub": {
          "description": "Create, manage and execute Ads Data Hub custom queries"
        }
      }
    }
  },
  "documentationLink": "https://developers.google.com/ads-data-hub/",
  "title": "Ads Data Hub API",
  "version_module": true,
  "ownerDomain": "google.com",
  "servicePath": "",
  "baseUrl": "https://adsdatahub.googleapis.com/",
  "schemas": {
    "QueryMetadata": {
      "type": "object",
      "description": "Metadata about a query execution job. This is stored in the metadata field of the google.longrunning.Operation returned by a query execution request.",
      "properties": {
        "destTable": {
          "type": "string",
          "description": "Destination table for query results. Used for analysis queries."
        },
        "queryResourceName": {
          "type": "string",
          "description": "Name of the query resource that was executed, e.g. customers/123/analysisQueries/abcd1234 Only present for stored query execution."
        },
        "matchDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Ads Data Hub customer ID used for match table data."
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Query execution start time."
        },
        "queryTitle": {
          "type": "string",
          "description": "Title of the query executed."
        },
        "parameterValues": {
          "additionalProperties": {
            "$ref": "ParameterValue"
          },
          "type": "object",
          "description": "Parameter values used in the query. Maps each argument name to its bound value."
        },
        "endTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Query execution end time."
        },
        "executionMode": {
          "enumDescriptions": [
            "Execution mode was not specified.",
            "Job was executed by a schedule.",
            "Job was executed manually by a user."
          ],
          "type": "string",
          "enum": [
            "EXECUTION_MODE_UNSPECIFIED",
            "SCHEDULED_EXECUTION",
            "MANUALLY_EXECUTED"
          ],
          "description": "How the job was executed (e.g. manually or by a schedule). Derived value."
        },
        "userListId": {
          "format": "int64",
          "description": "User list to populate with query results. Used for user list queries.",
          "type": "string"
        },
        "customerId": {
          "format": "int64",
          "type": "string",
          "description": "The Ads Data Hub customer ID that executed the query."
        },
        "queryText": {
          "description": "Text of the query executed. Note that this field will only be set in the response of google.longrunning.Operations.GetOperation call. It will be omitted in the response of google.longrunning.Operations.ListOperations call or any other calls.",
          "type": "string"
        },
        "adsDataCustomerId": {
          "description": "Ads Data Hub customer ID used for ads data.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "QueryMetadata"
    },
    "SubmitBrandLiftReportMetadata": {
      "id": "SubmitBrandLiftReportMetadata",
      "type": "object",
      "description": "Metadata for customer brand lift report submission request associated with each operation.",
      "properties": {
        "studyReport": {
          "description": "Request for brand lift study report submission.",
          "$ref": "SubmitBrandLiftStudyReportRequest"
        },
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Import start time."
        },
        "benchmark": {
          "$ref": "SubmitBrandLiftBenchmarkRequest",
          "description": "Request for brand lift quarter benchmark report submission."
        },
        "endTime": {
          "type": "string",
          "description": "Import end time.",
          "format": "google-datetime"
        }
      }
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."
        },
        "metadata": {
          "description": "A QueryMetadata object containing service-specific data associated with the operation.",
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "response": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object",
          "description": "A QueryResponse object, returned if the query operation is successful."
        }
      },
      "id": "Operation"
    },
    "FilteredRowSummary": {
      "id": "FilteredRowSummary",
      "type": "object",
      "properties": {
        "columns": {
          "type": "object",
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as SUMMARY_TYPE_UNSPECIFIED.",
          "additionalProperties": {
            "$ref": "ColumnSummaryRule"
          }
        }
      },
      "description": "Merge instructions for an analysis query result schema."
    },
    "GoogleAdsDimensions": {
      "type": "object",
      "description": "Filtering dimensions for Google Ads platform.",
      "properties": {
        "campaignIds": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "description": "Optional Google Ads campaign ids. If empty, reports on all campaigns for the specified time period.",
          "type": "array"
        },
        "metricType": {
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited.",
          "type": "string",
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ]
        }
      },
      "id": "GoogleAdsDimensions"
    },
    "CrmBasedListInfo": {
      "id": "CrmBasedListInfo",
      "description": "Metadata for CRM based lists.",
      "properties": {
        "crmBasedUserListQuery": {
          "type": "string",
          "description": "Immutable. The Ads Data Hub CRM based query resource that specifies how users are added to this audience. Has the form of: customers/[customer_id]/crmBasedUserListQueries/[query_resource_id]"
        }
      },
      "type": "object"
    },
    "SubmitBrandSafetyScoresResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "properties": {},
      "type": "object",
      "id": "SubmitBrandSafetyScoresResponse"
    },
    "Consent": {
      "id": "Consent",
      "description": "Represents a panelist’s consent for a particular consent use case.",
      "type": "object",
      "properties": {
        "type": {
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "description": "Type of this consent.",
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ]
        },
        "acceptTime": {
          "description": "Time at which the panelist first accepted an invitation to give consent.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "DescribeValidFrequencyLimitingEventMatchersResponse": {
      "description": "Response to a DescribeValidFrequencyLimitingEventMatchersRequest request.",
      "id": "DescribeValidFrequencyLimitingEventMatchersResponse",
      "properties": {
        "eventMatcherInfos": {
          "items": {
            "$ref": "EventMatcherInfo"
          },
          "description": "List of units, each containing an event matcher along with its metadata",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListCustomersResponse": {
      "id": "ListCustomersResponse",
      "properties": {
        "customers": {
          "items": {
            "$ref": "Customer"
          },
          "type": "array",
          "description": "A list of customers."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results."
        }
      },
      "type": "object",
      "description": "Response to a ListCustomers request. Contains the Ads Data Hub customers accessible by the current user."
    },
    "SubmitVendorAggregatesReportResponse": {
      "properties": {},
      "id": "SubmitVendorAggregatesReportResponse",
      "type": "object",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import."
    },
    "BatchRejectAdsDataLinksResponse": {
      "type": "object",
      "description": "Response to a BatchUpdateAdsDataLinks request.",
      "id": "BatchRejectAdsDataLinksResponse",
      "properties": {
        "links": {
          "type": "array",
          "items": {
            "$ref": "AdsDataLink"
          },
          "description": "Links updated."
        }
      }
    },
    "SubmitVendorReportIdMappingResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "id": "SubmitVendorReportIdMappingResponse",
      "properties": {}
    },
    "Dv360Dimensions": {
      "type": "object",
      "id": "Dv360Dimensions",
      "description": "Filtering dimensions for DV360 platform.",
      "properties": {
        "lineItemIds": {
          "type": "array",
          "description": "Optional DV360 line item ids. If empty, reports on all line items for the specified time period.",
          "items": {
            "format": "int64",
            "type": "string"
          }
        },
        "metricType": {
          "type": "string",
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ],
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited."
        }
      }
    },
    "GenerateConsentInviteCodeRequest": {
      "description": "Request to generate a consent invite code for the specified panelist.",
      "properties": {
        "consentType": {
          "description": "Consent type for which to generate an invite code.",
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ]
        }
      },
      "type": "object",
      "id": "GenerateConsentInviteCodeRequest"
    },
    "MergeColumn": {
      "type": "object",
      "id": "MergeColumn",
      "deprecated": true,
      "description": "Merge instructions for a single output column.",
      "properties": {
        "value": {
          "$ref": "ParameterValue",
          "description": "The constant value to use (only valid for CONSTANT merge type)."
        },
        "type": {
          "description": "Method used to combine the values for the column.",
          "enumDescriptions": [
            "Unspecified merge type. The merged column value will be NULL.",
            "Replace merged column value with the given constant.",
            "Take the sum of the merged column values."
          ],
          "type": "string",
          "enum": [
            "MERGE_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ]
        }
      }
    },
    "DestinationTableInfo": {
      "id": "DestinationTableInfo",
      "properties": {
        "tablePath": {
          "type": "string",
          "description": "Table path in the customer BigQuery project."
        },
        "rowCount": {
          "format": "int64",
          "type": "string",
          "description": "Number of rows in the result."
        },
        "impactPercentage": {
          "format": "float",
          "description": "If applicable, the percent of cells in this table which are not greatly affected by noise.",
          "type": "number"
        },
        "noiseImpact": {
          "description": "The noise impact message for this table.",
          "enumDescriptions": [
            "No noise impact specified",
            "Table is not noised.",
            "Noise has a low impact on the table's result confidence.",
            "Noise has a high impact on the table's result confidence.",
            "Noise has a low to medium impact on the table's result confidence.",
            "Noise has a medium impact on the table's result confidence.",
            "Noise has a very high impact on the table's result confidence."
          ],
          "type": "string",
          "enum": [
            "TABLE_NOISE_IMPACT_UNSPECIFIED",
            "NOT_NOISED",
            "LOW_IMPACT",
            "HIGH_IMPACT",
            "LOW_MEDIUM_IMPACT",
            "MEDIUM_IMPACT",
            "VERY_HIGH_IMPACT"
          ]
        },
        "columns": {
          "description": "Information about columns in result",
          "type": "array",
          "items": {
            "$ref": "ColumnInfo"
          }
        }
      },
      "type": "object",
      "description": "Metadata of an exported query output table."
    },
    "FieldType": {
      "id": "FieldType",
      "description": "Defines a BigQuery field type.",
      "properties": {
        "structType": {
          "description": "Struct field type, if this is a 'STRUCT' type.",
          "$ref": "StructType"
        },
        "arrayType": {
          "$ref": "FieldType",
          "description": "Type of the array's elements, if this is an 'ARRAY' type."
        },
        "type": {
          "description": "BigQuery simple type, e.g. 'STRING' or 'INT64'. See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateFrequencyListMembershipsRequest": {
      "description": "Request to generate memberships for a frequency-based list.",
      "properties": {},
      "id": "GenerateFrequencyListMembershipsRequest",
      "type": "object"
    },
    "RemoveRecipientsRequest": {
      "id": "RemoveRecipientsRequest",
      "type": "object",
      "description": "Request to remove recipients for a UserList.",
      "properties": {
        "recipientAdsDataLinks": {
          "items": {
            "type": "string"
          },
          "description": "Remove linked entities from the specified user_list’s recipients. customers/[customer_id]/adsDataLinks/[resource_id]",
          "type": "array"
        }
      }
    },
    "BatchApproveAdsDataLinksRequest": {
      "description": "Request to batch approve ads data links.",
      "properties": {
        "names": {
          "items": {
            "type": "string"
          },
          "description": "Required. The resource names of the links to approve. A maximum of 100 links can be approved in a batch.",
          "type": "array"
        }
      },
      "id": "BatchApproveAdsDataLinksRequest",
      "type": "object"
    },
    "BatchApproveAdsDataLinksResponse": {
      "description": "Response to a BatchUpdateAdsDataLinks request.",
      "type": "object",
      "id": "BatchApproveAdsDataLinksResponse",
      "properties": {
        "links": {
          "description": "Links updated.",
          "items": {
            "$ref": "AdsDataLink"
          },
          "type": "array"
        }
      }
    },
    "ColumnInfo": {
      "description": "Metadata of a destination table column.",
      "properties": {
        "noiseImpact": {
          "type": "string",
          "enum": [
            "COLUMN_NOISE_IMPACT_UNSPECIFIED",
            "NOT_NOISED",
            "LOW_IMPACT",
            "HIGH_IMPACT"
          ],
          "enumDescriptions": [
            "No noise impact specified.",
            "Column is not noised.",
            "Noise has a low impact on the column's result confidence.",
            "Noise has a high impact on the column's result confidence."
          ],
          "description": "The noise impact message for this column."
        },
        "name": {
          "type": "string",
          "description": "The column name"
        },
        "impactPercentage": {
          "description": "If applicable, the share this column contributes to the noise impact.",
          "type": "number",
          "format": "float"
        }
      },
      "id": "ColumnInfo",
      "type": "object"
    },
    "ExportBrandSafetyEntitiesMetadata": {
      "properties": {
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Export start time."
        },
        "request": {
          "description": "Request for exporting brand safety entities.",
          "$ref": "ExportBrandSafetyEntitiesRequest"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Export end time.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Metadata about a content identifier export job request. This is stored in the metadata field of the google.longrunning.Operation returned for an exportBrandSafetyEntities request. Note: the Operations returned by `/v1/operations` requests do not use this metadata message.",
      "id": "ExportBrandSafetyEntitiesMetadata"
    },
    "StartCrmBasedUserListReportRequest": {
      "type": "object",
      "id": "StartCrmBasedUserListReportRequest",
      "description": "Request to start execution on a stored CRM based user list report.",
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      }
    },
    "CheckConsentRequest": {
      "description": "Request to check the consent status of a panelist.",
      "properties": {
        "consentType": {
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "description": "Consent type for which to check this panelist's status."
        }
      },
      "id": "CheckConsentRequest",
      "type": "object"
    },
    "BatchRejectAdsDataLinksRequest": {
      "description": "Request to batch reject ads data links.",
      "id": "BatchRejectAdsDataLinksRequest",
      "properties": {
        "names": {
          "type": "array",
          "description": "Required. The resource names of the links to reject. A maximum of 100 links can be rejected in a batch.",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "CreateTempMatchedEventDataResponse": {
      "description": "Response stored in the Operation returned by a successful creation of panelist matched event data. Note: the Operations returned by `/v1/operations` requests do not use this response message.",
      "properties": {},
      "type": "object",
      "id": "CreateTempMatchedEventDataResponse"
    },
    "Schedule": {
      "properties": {
        "name": {
          "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
          "readOnly": true,
          "type": "string"
        },
        "timeZone": {
          "description": "Optional. If not specified, defaults to 'UTC'.",
          "$ref": "TimeZone"
        },
        "cronExpression": {
          "type": "string",
          "description": "┌───────────── minute (0–59) │ ┌───────────── hour (0–23) │ │ ┌───────────── day of the month (1–31) │ │ │ ┌───────────── month (1–12) │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday) │ │ │ │ │ │ │ │ │ │ * * * * * For example, the following expression executes at one minute past midnight 00:01 every day. 1 0 * * *"
        },
        "state": {
          "description": "State of the schedule.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "ACTIVE",
            "PAUSED"
          ],
          "enumDescriptions": [
            "The default / unset value.",
            "Schedule is active and running.",
            "Schedule is currently paused and not running."
          ]
        }
      },
      "description": "Schedule used to execute a query based on the given cron_expression.",
      "id": "Schedule",
      "type": "object"
    },
    "GenerateDv360IvtVideoViewabilityReportRequest": {
      "id": "GenerateDv360IvtVideoViewabilityReportRequest",
      "description": "Request to start the execution of a query to retrieve invalid traffic viewability metrics for the DV360 platform.",
      "type": "object",
      "properties": {
        "lineItemIds": {
          "description": "Line item ids to report on.",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "type": "array"
        },
        "endDate": {
          "description": "The last day of the generated report, inclusive.",
          "$ref": "Date"
        },
        "destTable": {
          "type": "string",
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset."
        },
        "timeZone": {
          "description": "The time zone for the report start and end dates. If not specified, defaults to 'UTC'.",
          "type": "string"
        },
        "adsDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID that owns the ads data.",
          "format": "int64",
          "type": "string"
        },
        "startDate": {
          "description": "The first day of the generated report.",
          "$ref": "Date"
        }
      }
    },
    "ListOutagesResponse": {
      "type": "object",
      "description": "Response to a ListOutages request, contains the outages.",
      "properties": {
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "outages": {
          "description": "The outages within the look back window",
          "items": {
            "$ref": "Outage"
          },
          "type": "array"
        }
      },
      "id": "ListOutagesResponse"
    },
    "RemarketingListInfo": {
      "description": "Metadata for remarketing lists.",
      "properties": {
        "populatingUserListQueries": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. The Ads Data Hub user list query resources that have populated this audience. This is intended as a legacy field to support userlists that were populated by multiple queries before 1:1 userlist:query restrictions went into effect. Has the form of: customers/[customer_id]/userListQueries/[query_resource_id]"
        },
        "userListQuery": {
          "description": "Immutable. The Ads Data Hub user list query resource that specifies how users are added to this audience. Has the form of: customers/[customer_id]/userListQueries/[query_resource_id]",
          "type": "string"
        }
      },
      "id": "RemarketingListInfo",
      "type": "object"
    },
    "Status": {
      "type": "object",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "Status",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        },
        "details": {
          "items": {
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
        }
      }
    },
    "ListOperationsResponse": {
      "type": "object",
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        }
      },
      "id": "ListOperationsResponse"
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "properties": {},
      "id": "CancelOperationRequest",
      "type": "object"
    },
    "UserListQuery": {
      "type": "object",
      "id": "UserListQuery",
      "description": "Defines a user list query that can be executed within Ads Data Hub.",
      "properties": {
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form customers/[customer_id]/userListQueries/[resource_id], e.g. 'customers/123/userListQueries/abcd1234'. The resource ID is generated by the server."
        },
        "queryText": {
          "type": "string",
          "description": "Query text."
        },
        "queryState": {
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ],
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ],
          "description": "Query state."
        },
        "updateTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Time the query was last updated.",
          "readOnly": true
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "userList": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The Ads Data Hub user list resource that can be populated by this user list query.",
          "readOnly": true,
          "type": "array"
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "readOnly": true,
          "description": "Output only. Immutable. Time the query was created.",
          "format": "google-datetime",
          "type": "string"
        },
        "queryShare": {
          "items": {
            "$ref": "QueryShare"
          },
          "type": "array",
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer."
        },
        "parameterTypes": {
          "type": "object",
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        },
        "updateEmail": {
          "readOnly": true,
          "description": "Output only. Email address of user who last updated the query.",
          "type": "string"
        }
      }
    },
    "StartUserListQueryRequest": {
      "type": "object",
      "properties": {
        "spec": {
          "description": "Defines the query execution parameters.",
          "$ref": "QueryExecutionSpec"
        },
        "customerId": {
          "description": "Optional. Ads Data Hub customer executing the query. If not specified, defaults to the customer that owns the query.",
          "format": "int64",
          "type": "string"
        },
        "userListId": {
          "type": "string",
          "description": "Google Ads user list ID. Note that the user list must be managed by the Ads Data Hub customer executing the query.",
          "format": "int64"
        }
      },
      "description": "Request to start execution on a stored user list query.",
      "id": "StartUserListQueryRequest"
    },
    "ExportBrandSafetyEntitiesRequest": {
      "id": "ExportBrandSafetyEntitiesRequest",
      "description": "Request to start execution of a Brand Safety entity export.",
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "The date for brand safety entity exports. Any impressions that occurred on this date in timezone \"America/New_York\" will be provided."
        },
        "platform": {
          "type": "string",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ],
          "enumDescriptions": [
            "Unspecified platform.",
            "The entity is associated with Google Ads.",
            "The entity is associated with Google Marketing Platform.",
            "The entity is associated with YouTube Reserve.",
            "The entity is associated with Google Ad Manager.",
            "The entity is associated with FreeWheel."
          ],
          "description": "Advertising platform associate with the request."
        },
        "adsDataCustomerId": {
          "format": "int64",
          "type": "string",
          "description": "Linked Ads Data Hub customer ID that owns the ads data."
        },
        "name": {
          "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "includeGvp": {
          "description": "Will include any exportable GVP traffic when set to `true`.",
          "type": "boolean"
        },
        "destTable": {
          "description": "Destination BigQuery table for the results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateIvtReportRequest": {
      "type": "object",
      "properties": {
        "googleAdsDimensions": {
          "$ref": "GoogleAdsDimensions",
          "description": "Report on platform Google Ads."
        },
        "startDate": {
          "$ref": "Date",
          "description": "The first day of the generated report."
        },
        "endDate": {
          "$ref": "Date",
          "description": "The last day of the generated report, inclusive."
        },
        "destTable": {
          "type": "string",
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset."
        },
        "ytReserveDimensions": {
          "$ref": "YouTubeReserveDimensions",
          "description": "Report on platform YTR."
        },
        "adsDataCustomerId": {
          "format": "int64",
          "type": "string",
          "description": "Linked Ads Data Hub customer ID that owns the ads data."
        },
        "timeZone": {
          "description": "Optional. The time zone for the report start and end dates. If not specified, defaults to 'UTC'.",
          "type": "string"
        },
        "dv360YoutubeDimensions": {
          "description": "Report on platform DV360.",
          "$ref": "Dv360Dimensions"
        },
        "dateDimensionGranularity": {
          "type": "string",
          "enum": [
            "DATE_DIMENSION_GRANULARITY_UNSPECIFIED",
            "DAY",
            "ENTIRE_DATE_RANGE"
          ],
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Each report row will represent a single day of data.",
            "Each report row will represent the entire date range of data."
          ],
          "description": "Optional. The granularity of the IVT report's date dimension. Defaults to DAY if UNSPECIFIED."
        }
      },
      "description": "Request to start the execution of a query to retrieve a day-by-day summary of invalid traffic counts for a specific platform. Next Id: 15",
      "id": "GenerateIvtReportRequest"
    },
    "SubmitVendorAggregatesReportMetadata": {
      "properties": {
        "request": {
          "$ref": "SubmitVendorAggregatesReportRequest",
          "description": "Request for Vendor Metric Summary report submission."
        },
        "endTime": {
          "type": "string",
          "description": "Import end time.",
          "format": "google-datetime"
        },
        "startTime": {
          "type": "string",
          "description": "Import start time.",
          "format": "google-datetime"
        }
      },
      "description": "Metadata for Vendor Metric Summary report submission request associated with each operation.",
      "id": "SubmitVendorAggregatesReportMetadata",
      "type": "object"
    },
    "QueryExecutionSpec": {
      "type": "object",
      "description": "Defines the query execution parameters.",
      "id": "QueryExecutionSpec",
      "properties": {
        "parameterValues": {
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          },
          "description": "Any additional parameters expected by the query. Maps each parameter name to its bound value."
        },
        "matchDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Linked Ads Data Hub customer ID that owns the match data for the query. If absent, then the query will be run using the match data owned by the Ads Data Hub customer ID running the query, if applicable."
        },
        "adsDataCustomerId": {
          "type": "string",
          "description": "Optional. Linked Ads Data Hub customer ID that owns the ads data used in the query. If absent, then the query will be run using the ads data owned by the Ads Data Hub customer running the query.",
          "format": "int64"
        },
        "jobId": {
          "description": "Optional. Job ID for the query operation. The resulting operation will have the name \"operations/[job_id]\", e.g. \"operations/job_123\". If an operation with the same job ID already exists, this will result in an error. If absent, a job ID will be generated by the server.",
          "type": "string"
        },
        "startDate": {
          "$ref": "Date",
          "description": "The start date (inclusive) for the query. Reserved keyword: A user-defined parameter with this name will be ignored and replaced with the values from the QueryExecutionSpec."
        },
        "timeZone": {
          "description": "Optional. The time zone for the query start and end dates. If not specified, defaults to 'UTC'. Reserved keyword: A user-defined parameter with this name will be ignored and replaced with the values from the QueryExecutionSpec.",
          "type": "string"
        },
        "privacyMode": {
          "type": "string",
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ],
          "description": "Optional. Type of privacy protections to apply to query.",
          "enumDescriptions": [
            "Unspecified mode. Not allowed for aggregation queries.",
            "Apply difference checks to query.",
            "Apply noise to query."
          ]
        },
        "endDate": {
          "description": "The end date (inclusive) for the query. Reserved keyword: A user-defined parameter with this name will be ignored and replaced with the values from the QueryExecutionSpec.",
          "$ref": "Date"
        }
      }
    },
    "CreateTempMatchedEventDataMetadata": {
      "type": "object",
      "description": "Metadata stored in the Operation returned by a successful creation of panelist matched event data. Note: the Operations returned by `/v1/operations` requests do not use this metadata message.",
      "properties": {
        "request": {
          "description": "Request for creating panelist matched event data.",
          "$ref": "CreateTempMatchedEventDataRequest"
        }
      },
      "id": "CreateTempMatchedEventDataMetadata"
    },
    "StructValue": {
      "type": "object",
      "properties": {
        "values": {
          "additionalProperties": {
            "$ref": "ParameterValue"
          },
          "description": "The struct field values keyed by field name.",
          "type": "object"
        }
      },
      "description": "Defines a struct parameter value.",
      "id": "StructValue"
    },
    "ListUserListsResponse": {
      "properties": {
        "userLists": {
          "items": {
            "$ref": "UserList"
          },
          "type": "array",
          "description": "A list of user lists."
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "id": "ListUserListsResponse",
      "description": "Response to a ListUserLists request. Contains the user lists managed by the specified Ads Data Hub customer.",
      "type": "object"
    },
    "ValidateUserListQueryResponse": {
      "id": "ValidateUserListQueryResponse",
      "description": "Response to a ValidateUserListQuery request.",
      "properties": {
        "queryPerformanceInfo": {
          "description": "Returned if include_performance_info is true.",
          "$ref": "QueryPerformanceInfo"
        },
        "processedBytes": {
          "description": "Deprecated, and use query_performance_info instead. Bytes of data this query reads. See https://cloud.google.com/bigquery/pricing#data for details on how this is calculated. Returned if include_performance_info is true. We round the processed_bytes to MB, and then convert it to bytes. -1 means we couldn't fetch it for this query.",
          "format": "int64",
          "type": "string",
          "deprecated": true
        }
      },
      "type": "object"
    },
    "SubmitVendorReportIdMappingRequest": {
      "properties": {
        "metric": {
          "type": "string",
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ],
          "enumDescriptions": [
            "Unspecified metric.",
            "Metric corresponding to Brand Lift.",
            "Metric corresponding to Brand Safety.",
            "Metric corresponding to Reach, where the customer is the advertiser.",
            "Metric corresponding to Viewability, where the customer is the advertiser.",
            "Metric corresponding to Reach, where the customer is the publisher/content provider.",
            "Metric corresponding to Viewability, where the customer is the publisher/content provider.",
            "Metric corresponding to Conversion Attribution, where the customer is the advertiser."
          ],
          "description": "Optional. Metric which the table is reporting. Defaults to REACH if not populated."
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'. The project, dataset, and table_name must all be provided explicitly. Table must have the following columns: date report_date, string vendor_client_id, string vendor_reporting_id, string entity_type, int entity_id. For more details, see Report ID Mapping Schema on ADH Dev Site: https://developers.google.com/ads-data-hub/confidential/brandmeasurement/reach/report_id_mapping_schema",
          "type": "string"
        },
        "customer": {
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "date": {
          "description": "Required. Date that the daily report ID mapping is for.",
          "$ref": "Date"
        },
        "instance": {
          "description": "Optional. The name of the submission feed instance. This shouldn't be populated for the production ID mapping feed, but can be filled out with a prearranged instance name when a vendor works with Google to test a new or alternate version of their submission feed.",
          "type": "string"
        }
      },
      "description": "Request to submit a Customer Defined Report ID Mapping file.",
      "id": "SubmitVendorReportIdMappingRequest",
      "type": "object"
    },
    "ListAdsDataLinksResponse": {
      "properties": {
        "links": {
          "items": {
            "$ref": "AdsDataLink"
          },
          "description": "A list of ad data links.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "id": "ListAdsDataLinksResponse",
      "description": "Response to a ListAdsDataLinks request.",
      "type": "object"
    },
    "AddRecipientsRequest": {
      "description": "Request to add recipients to a UserList.",
      "type": "object",
      "id": "AddRecipientsRequest",
      "properties": {
        "recipientAdsDataLinks": {
          "type": "array",
          "description": "Add these linked entities to the specified user_list’s recipients. eg. customers/[customer_id]/adsDataLinks/[resource_id]",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "StructType": {
      "description": "Defines a struct type.",
      "properties": {
        "fields": {
          "type": "array",
          "description": "An ordered list of fields for a given struct.",
          "items": {
            "$ref": "StructField"
          }
        }
      },
      "type": "object",
      "id": "StructType"
    },
    "ListCustomerLinksResponse": {
      "description": "Response to a ListCustomerLinks request. Contains the Ads Data Hub customers linked to the specified customer.",
      "properties": {
        "links": {
          "description": "A list of customer links.",
          "items": {
            "$ref": "CustomerLink"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results."
        }
      },
      "id": "ListCustomerLinksResponse",
      "type": "object"
    },
    "ListTempTablesResponse": {
      "type": "object",
      "id": "ListTempTablesResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "tables": {
          "description": "A list of tables.",
          "items": {
            "$ref": "TempTable"
          },
          "type": "array"
        }
      },
      "description": "Response to a ListTempTables request."
    },
    "RevokeConsentRequest": {
      "description": "Request to revoke consent for a panelist.",
      "id": "RevokeConsentRequest",
      "type": "object",
      "properties": {
        "consentType": {
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "description": "Type of consent to revoke for this panelist."
        }
      }
    },
    "Outage": {
      "description": "Defines an outage and its information.",
      "properties": {
        "details": {
          "description": "Message describing this outage.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name that uniquely identifies an outage. It has the form outages/[outage_id], e.g. 'outages/1234'."
        },
        "startTime": {
          "format": "google-datetime",
          "description": "The absolute point in time when the outage started.",
          "type": "string"
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The absolute point in time when the outage ended or will end. If empty or in the future, then it means the outage is still on going."
        },
        "type": {
          "description": "The type of this outage.",
          "type": "string",
          "enum": [
            "OUTAGE_TYPE_UNSPECIFIED",
            "OUTAGE_TYPE_INACCESSIBLE_UI",
            "OUTAGE_TYPE_QUERY_SERVICE_DOWN",
            "OUTAGE_TYPE_OUT_OF_SLA_DT",
            "OUTAGE_TYPE_FIELD_NOT_POPULATING",
            "OUTAGE_TYPE_ACCOUNT_LINKING_DOWN",
            "OUTAGE_TYPE_OUT_OF_SLA_NON_DT"
          ],
          "enumDescriptions": [
            "The outage type is not specified.",
            "Certain Ads Data Hub UI is not accessible.",
            "Ads Data Hub query related service is down.",
            "Ads Data Hub data-transfer is out of service layer agreement (SLA).",
            "Certain fields are not populating in Ads Data Hub.",
            "Ads Data Hub account linking related service is down.",
            "Ads Data Hub non-data-transfer is out of service layer agreement (SLA)."
          ]
        }
      },
      "type": "object",
      "id": "Outage"
    },
    "Column": {
      "id": "Column",
      "type": "object",
      "properties": {
        "columnType": {
          "description": "Column type.",
          "$ref": "FieldType"
        },
        "columnId": {
          "description": "Column identifier.",
          "type": "string"
        }
      },
      "description": "Defines a Table column."
    },
    "Entity": {
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Entity display name."
        },
        "type": {
          "description": "Type of linked entity.",
          "enumDescriptions": [
            "Unspecified entity type.",
            "A Google Ads customer. The entity_id corresponds to [`Customer.id`](https://developers.google.com/google-ads/api/reference/rpc/v11/Customer#id)",
            "A Google Ads campaign. The entity_id corresponds to [`Campaign.id`](https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign#id) in the Google Ads API.",
            "A Campaign Manager 360 account. The entity_id corresponds to [`Accounts.id`](https://developers.google.com/doubleclick-advertisers/rest/v4/accounts) in the Campaign Manager 360 API.",
            "A Campaign Manager 360 floodlight account. The entity_id corresponds to [`FloodlightConfigurations.accountId`](https://developers.google.com/doubleclick-advertisers/rest/v4/floodlightConfigurations) in the Campaign Manager 360 API.",
            "A Display & Video 360 partner ID. The entity_id is a Display & Video 360 partner ID.",
            "A Display & Video 360 advertiser ID. The entity_id is a Display & Video 360 advertiser ID.",
            "A Display & Video 360 order ID. The entity_id is a Display & Video 360 order ID.",
            "A Display & Video 360 line item ID. The entity_id is a Display & Video 360 line item ID.",
            "A YouTube Reserve order ID. The entity_id corresponds to [`Order.id`](https://developers.google.com/ad-manager/api/reference/v201902/OrderService.Order#id) in the Google Ad Manager API.",
            "A YouTube Reserve line item. The entity_id corresponds to [`LineItem.id`](https://developers.google.com/ad-manager/api/reference/v201902/LineItemService.LineItem#id) in the Google Ad Manager API.",
            "A Vendor Client ID that is manually registered by a third-party ad tech vendor to provide third-party measurements.",
            "A Google Ad Manager order ID. The entity_id corresponds to [`Order.id`](https://developers.google.com/ad-manager/api/reference/v201902/OrderService.Order#id) in the Google Ad Manager API.",
            "A Google Ad Manager line item. The entity_id corresponds to [`LineItem.id`](https://developers.google.com/ad-manager/api/reference/v201902/LineItemService.LineItem#id) in the Google Ad Manager API."
          ],
          "type": "string",
          "enum": [
            "ENTITY_TYPE_UNSPECIFIED",
            "GOOGLE_ADS_CUSTOMER",
            "GOOGLE_ADS_CAMPAIGN",
            "GMP_CM_ACCOUNT",
            "GMP_CM_FLOODLIGHT",
            "GMP_DV360_PARTNER",
            "GMP_DV360_ADVERTISER",
            "GMP_DV360_ORDER",
            "GMP_DV360_LINE_ITEM",
            "YT_RESERVE_ORDER",
            "YT_RESERVE_LINE_ITEM",
            "VENDOR_CLIENT_ID_REGISTRATION",
            "GOOGLE_AD_MANAGER_ORDER",
            "GOOGLE_AD_MANAGER_LINE_ITEM"
          ]
        },
        "entityId": {
          "type": "string",
          "description": "Entity ID. The value listed here is dependent on the entity type.",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "Entity",
      "description": "Represents an advertising entity that can be linked to an Ads Data Hub customer."
    },
    "ExportBrandSafetyEntitiesResponse": {
      "properties": {},
      "description": "Response returned for successful content identifier export job. This is stored in the response field of the google.longrunning.Operation returned for an exportBrandSafetyEntities request. Note: the Operations returned by `/v1/operations` requests do not use this response message.",
      "type": "object",
      "id": "ExportBrandSafetyEntitiesResponse"
    },
    "SubmitVendorReportIdMappingMetadata": {
      "id": "SubmitVendorReportIdMappingMetadata",
      "properties": {
        "request": {
          "description": "Request for Report Id Mapping submission.",
          "$ref": "SubmitVendorReportIdMappingRequest"
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Import end time."
        },
        "startTime": {
          "type": "string",
          "description": "Import start time.",
          "format": "google-datetime"
        }
      },
      "description": "Metadata for Customer Report ID Mapping submission request associated with each operation.",
      "type": "object"
    },
    "TempTable": {
      "type": "object",
      "description": "Defines a temp table created by an Ads Data Hub query. Temp tables are created using CREATE TABLE temp_table AS (...) in an Ads Data Hub query. Temp tables remain active for 72 hours before needing to be refreshed.",
      "id": "TempTable",
      "properties": {
        "queryType": {
          "description": "Type of query that created the table. Temp tables are only accessible to to queries of the same type unless usable_query_types is set.",
          "type": "string",
          "enum": [
            "QUERY_TYPE_UNSPECIFIED",
            "ANALYSIS",
            "USER_LIST",
            "SPECIAL_ENDPOINT"
          ],
          "enumDescriptions": [
            "No query type specified.",
            "An AnalysisQuery.",
            "A UserListQuery.",
            "A query triggered by a special endpoint."
          ]
        },
        "usableQueryTypes": {
          "description": "Types of queries that can access this temp table. If empty, this temp table is only accessible to queries of the same type as its query_type.",
          "type": "array",
          "items": {
            "enumDescriptions": [
              "No query type specified.",
              "An AnalysisQuery.",
              "A UserListQuery.",
              "A query triggered by a special endpoint."
            ],
            "type": "string",
            "enum": [
              "QUERY_TYPE_UNSPECIFIED",
              "ANALYSIS",
              "USER_LIST",
              "SPECIAL_ENDPOINT"
            ]
          }
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query.",
          "type": "string"
        },
        "operation": {
          "description": "Operation that created the temp table. It has the form operations/[jobId]",
          "type": "string"
        },
        "matchDataCustomerId": {
          "type": "string",
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query.",
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "Name that uniquely identifies a table. It has the form customers/[customer_id]/tempTables/[resource_id]. The resource ID is generated by the server."
        },
        "createTime": {
          "type": "string",
          "description": "Timestamp when the temp table is created, in micros.",
          "format": "google-datetime"
        },
        "tablePath": {
          "description": "Fully qualified table path, e.g. 'tmp.table'",
          "type": "string"
        },
        "columns": {
          "items": {
            "$ref": "Column"
          },
          "type": "array",
          "description": "A list of table columns."
        }
      }
    },
    "StartTransientAnalysisQueryRequest": {
      "type": "object",
      "description": "Request to start execution of a transient analysis query.",
      "id": "StartTransientAnalysisQueryRequest",
      "properties": {
        "destTable": {
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        },
        "query": {
          "description": "The query to execute.",
          "$ref": "AnalysisQuery"
        },
        "spec": {
          "description": "Defines the query execution parameters.",
          "$ref": "QueryExecutionSpec"
        }
      }
    },
    "UpdateCrmBasedUserListMembershipsRequest": {
      "id": "UpdateCrmBasedUserListMembershipsRequest",
      "type": "object",
      "properties": {
        "jobId": {
          "type": "string",
          "description": "Optional. User-specified job ID. This should be unique at the customer level."
        }
      },
      "description": "Request to update memberships for a CRM based list."
    },
    "SubmitBrandSafetyScoresMetadata": {
      "description": "Metadata for Brand Safety Scores submission request associated with each operation.",
      "properties": {
        "request": {
          "$ref": "SubmitBrandSafetyScoresRequest",
          "description": "Request for Brand Safety Scores submission."
        },
        "endTime": {
          "description": "Import end time.",
          "format": "google-datetime",
          "type": "string"
        },
        "startTime": {
          "description": "Import start time.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object",
      "id": "SubmitBrandSafetyScoresMetadata"
    },
    "ValidateUserListQueryRequest": {
      "id": "ValidateUserListQueryRequest",
      "type": "object",
      "properties": {
        "includePerformanceInfo": {
          "type": "boolean",
          "description": "Optional. If true, call BigQuery to dry run the query to collect some performance info. It may take longer compared to only validating the query. The start_date, end_date and parameters inside query_execution_spec need to be set for the dry run."
        },
        "spec": {
          "description": "Optional. The duplicated fields inside query_execution_spec will override the fields outside.",
          "$ref": "QueryExecutionSpec"
        },
        "matchDataCustomerId": {
          "format": "int64",
          "type": "string",
          "deprecated": true,
          "description": "Optional. Specific linked Ads Data Hub customer ID to use for validating match data and temp table access. Defaults to all the linked customers. Deprecated. Use the match_table_customer_id inside query_execution_spec."
        },
        "query": {
          "description": "The query to validate.",
          "$ref": "UserListQuery"
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Optional. Specific linked Ads Data Hub customer ID to use for validating ads data and temp table access. Defaults to all the linked customers. Deprecated. Use the ads_data_customer_id inside query_execution_spec.",
          "deprecated": true,
          "type": "string"
        }
      },
      "description": "Request to validate a user list query."
    },
    "UserProvidedDataMatch": {
      "type": "object",
      "id": "UserProvidedDataMatch",
      "properties": {
        "matchCountEstimate": {
          "format": "int64",
          "type": "string",
          "description": "An approximate count of the users matched in the user provided data."
        }
      },
      "description": "Metadata of a user-provided data match."
    },
    "AnalysisQuery": {
      "type": "object",
      "id": "AnalysisQuery",
      "description": "Defines an analysis query that can be executed within Ads Data Hub.",
      "properties": {
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. Immutable. Time the query was created.",
          "type": "string",
          "readOnly": true
        },
        "queryShare": {
          "items": {
            "$ref": "QueryShare"
          },
          "type": "array",
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer."
        },
        "updateEmail": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Email address of user who last updated the query."
        },
        "mergeSpec": {
          "deprecated": true,
          "$ref": "MergeSpec",
          "description": "Instructions for row merging. If present, then any rows that would have been dropped for privacy reasons will be combined into a single merged row. The merged row will be in the final output if the merged row meets privacy requirements."
        },
        "filteredRowSummary": {
          "description": "Define how to combine rows dropped for privacy reasons into a single merged row. The merged row will be included in the final output if the merged row meets privacy requirements.",
          "$ref": "FilteredRowSummary"
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "parameterTypes": {
          "type": "object",
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "readOnly": true,
          "type": "string"
        },
        "generateFilteredRowSummaryAutomatically": {
          "type": "boolean",
          "description": "If true, a filtered row summary is generated automatically."
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form customers/[customer_id]/analysisQueries/[resource_id], e.g. 'customers/123/analysisQueries/abcd1234'. The resource ID is generated by the server."
        },
        "queryState": {
          "description": "Query state.",
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ],
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ]
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time the query was last updated."
        },
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        }
      }
    },
    "Report": {
      "properties": {
        "adsDataCustomerId": {
          "description": "Optional. See ads.adsdatahub.v1.QueryExecutionSpec.ads_data_customer_id.",
          "format": "int64",
          "type": "string"
        },
        "parameterValues": {
          "description": "Optional. Any additional parameters expected by the query. Maps each parameter name to its bound value. See ads.adsdatahub.v1.QueryExecutionSpec.parameter_values.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        },
        "matchDataCustomerId": {
          "format": "int64",
          "type": "string",
          "description": "Optional. See ads.adsdatahub.v1.report.match_data_customer_id."
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report"
        },
        "userListId": {
          "format": "int64",
          "description": "Optional. Only relevant for userlist queries. This is the Google Ads user list ID. Note that the user list must be managed by the Ads Data Hub customer executing the query. See ads.adsdatahub.v1.StartUserListQueryRequest.user_list_id.",
          "type": "string"
        },
        "destTableParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Additional destination table parameters to be referenced in the query. Keys are names referenced in SQL as 'params.{name}', and values are BigQuery table paths with the same format and requirements as dest_table. See ads.adsdatahub.v1.StartAnalysisQueryRequest.dest_table_parameters",
          "type": "object"
        },
        "endDateOffset": {
          "description": "The end date offset (inclusive) for the query execution. See ads.adsdatahub.v1.QueryExecutionSpec.end_date. The absolute end_date is computed by subtracting this offset from the current date.",
          "type": "string",
          "format": "google-duration"
        },
        "timeZone": {
          "description": "Optional. The time zone used to compute the query start and end dates. See ads.adsdatahub.v1.QueryExecutionSpec.time_zone. If not specified, the time zone defaults to 'UTC'.",
          "$ref": "TimeZone"
        },
        "startDateOffset": {
          "format": "google-duration",
          "description": "The start date offset (inclusive) for the query execution. See ads.adsdatahub.v1.QueryExecutionSpec.start_date. The absolute start_date is computed by subtracting this offset from the current date.",
          "type": "string"
        },
        "privacyMode": {
          "enumDescriptions": [
            "Unspecified mode. Not allowed for aggregation queries.",
            "Apply difference checks to query.",
            "Apply noise to query."
          ],
          "type": "string",
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ],
          "description": "Optional. Type of privacy protections to apply to query. See ads.adsdatahub.v1.QueryExecutionSpec.privacy_mode."
        },
        "destTableFormat": {
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name_{date_time}'. For example, see ads.adsdatahub.v1.StartAnalysisQueryRequest.dest_table. The date_time suffix is computed from the current date time and formatted as the complete date plus hours, minutes and seconds in ISO 8601 format modified slightly (semi-colons removed) in order to be a valid bigquery table name. The time zone used is the same as time_zone above and the time zone designator (TZD) is expressed in UTC (Coordinated Universal Time) with the special UTC designator (\"Z\"). e.g. YYYY-MM-DDThh:mm:ssTZD (1997-07-16T19:20:30+01:00) is formatted as YYYY-MM-DDThhmmssZ (1997-07-16T182030Z)",
          "type": "string"
        }
      },
      "description": "Report containing all the parameters required to execute a query. Next ID: 14",
      "type": "object",
      "id": "Report"
    },
    "DataAccessBudget": {
      "properties": {
        "dataDayState": {
          "items": {
            "$ref": "DataDayState"
          },
          "type": "array",
          "description": "Status of the budget by date."
        }
      },
      "id": "DataAccessBudget",
      "type": "object",
      "description": "Data access budget state per date."
    },
    "SubmitBrandLiftStudyReportRequest": {
      "type": "object",
      "description": "Request to submit a customer generated brand lift study report.",
      "id": "SubmitBrandLiftStudyReportRequest",
      "properties": {
        "date": {
          "description": "Required. Date that the study report is for.",
          "$ref": "Date"
        },
        "customer": {
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "instance": {
          "type": "string",
          "description": "Optional. The name of the submission feed instance. This shouldn't be populated for the production brand lift feed, but can be filled out with a prearranged instance name when a vendor works with Google to test a new or alternate version of their submission feed."
        },
        "sourceTable": {
          "type": "string",
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'. The project, dataset, and table_name must all be provided explicitly. Please refer to Brand Lift Benchmark Schema on ADH Dev Site for detailed schema requirements about the table."
        }
      }
    },
    "CreateTempMatchedEventDataRequest": {
      "properties": {
        "customer": {
          "type": "string",
          "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
        },
        "destTempTable": {
          "description": "Name of the destination temp table. Table will be stored as an ADH temp table. Name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).",
          "type": "string"
        },
        "sourceTable": {
          "description": "Name of the BigQuery source table with format ‘project.dataset.table_name’. Required columns - 'ad_cpn' and 'training_labels'. 'ad_cpn' column represents panelist ad_cpn. 'training_labels' can be defined as a struct to nest other customer defined columns. Only 'obfuscated_ad_cpn' and 'training_labels' joined with ADH data will be returned.",
          "type": "string"
        },
        "endDate": {
          "description": "The end date (inclusive) for creating panelist model training data.",
          "$ref": "Date"
        },
        "startDate": {
          "description": "The start date (inclusive) for creating panelist model training data.",
          "$ref": "Date"
        },
        "timeZone": {
          "type": "string",
          "description": "Optional. The time zone for start and end dates. Timezone can be specified by using Time Zone Database name (https://www.iana.org/time-zones). If not specified, defaults to 'UTC'."
        }
      },
      "type": "object",
      "description": "Request to create temp table with panelist matched event data.",
      "id": "CreateTempMatchedEventDataRequest"
    },
    "StartRemarketingUserListReportRequest": {
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "StartRemarketingUserListReportRequest",
      "description": "Request to start execution on a stored remarketing user list report."
    },
    "FrequencyConstraint": {
      "type": "object",
      "description": "Specify the minimum number of events for the cap.",
      "id": "FrequencyConstraint",
      "properties": {
        "thresholdEventCount": {
          "format": "int64",
          "type": "string",
          "description": "Required. Each user should appear in at least K events."
        },
        "eventType": {
          "description": "Immutable. The type of event that will be counted against threshold_event_count.",
          "enumDescriptions": [
            "Default value: should not be used.",
            "Count all impressions."
          ],
          "type": "string",
          "enum": [
            "EVENT_TYPE_UNSPECIFIED",
            "IMPRESSIONS"
          ]
        }
      }
    },
    "Customer": {
      "properties": {
        "customerId": {
          "type": "string",
          "format": "int64",
          "description": "Ads Data Hub customer ID."
        },
        "displayName": {
          "description": "Descriptive customer name.",
          "type": "string"
        },
        "name": {
          "description": "Name that uniquely identifies a customer. It should have the form customers/[customer_id], e.g. 'customers/123'.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "An Ads Data Hub customer.",
      "id": "Customer"
    },
    "ValidateAnalysisQueryResponse": {
      "properties": {
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        },
        "destParamNames": {
          "description": "Optional. Additional destination table names defined as parameters in the query. Parameters can be defined in SQL as 'params.{name}'. Where `{name}` is the desired name of the table.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "type": "array",
          "description": "Additional information from validation, if any. This may include helpful information or warnings, such as privacy anti-patterns in the query. It will not block query execution, but should be considered for best results.",
          "items": {
            "$ref": "Status"
          }
        },
        "warningsStatus": {
          "description": "Additional warnings from validation, if any. This may include use of deprecated fields or features, or privacy anti-patterns in the query. These warnings will not block query execution, but should be considered for best results.",
          "type": "array",
          "deprecated": true,
          "items": {
            "$ref": "Status"
          }
        },
        "filteredRowSummary": {
          "$ref": "FilteredRowSummary",
          "description": "Filtered row summary that would be used when the query is executed: the rows that are not sufficiently aggregated are dropped from the result, filtered row summary describes how to summarize these rows. For details see https://developers.google.com/ads-data-hub/guides/legacy-diff-checks#filtered_row_summary."
        },
        "processedBytes": {
          "description": "Deprecated, and use query_performance_info instead. Bytes of data this query reads. See https://cloud.google.com/bigquery/pricing#data for details on how this is calculated. Returned if include_performance_info is true. We round the processed_bytes to MB, and then convert it to bytes. -1 means we couldn't fetch it for this query.",
          "type": "string",
          "format": "int64",
          "deprecated": true
        }
      },
      "description": "Response to a ValidateAnalysisQuery request.",
      "id": "ValidateAnalysisQueryResponse",
      "type": "object"
    },
    "ValidateCrmBasedUserListQueryRequest": {
      "properties": {
        "query": {
          "description": "Required. The query to validate.",
          "$ref": "CrmBasedUserListQuery"
        },
        "includePerformanceInfo": {
          "description": "Optional. If true, call BigQuery to dry run the query to collect some performance info. It may take longer compared to only validating the query. The start_date, end_date and parameters inside query_execution_spec need to be set for the dry run.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Request to validate a CRM based user list query.",
      "id": "ValidateCrmBasedUserListQueryRequest"
    },
    "EventMatcher": {
      "id": "EventMatcher",
      "type": "object",
      "description": "Generic event that contributes to the frequency.",
      "properties": {
        "value": {
          "description": "Value of the constraint. For example, for specifying a Google Ads campaign ID = 1234, match_type would be GOOGLE_ADS_CAMPAIGN_ID and value would be '1234'. Events that have this value for the respective MatchType will be included in the frequency count.",
          "type": "string"
        },
        "matchType": {
          "description": "The type of the constraint that will be included in the frequency count.",
          "type": "string",
          "enum": [
            "MATCH_TYPE_UNSPECIFIED",
            "CM_CAMPAIGN_ID",
            "DV360_INSERTION_ORDER_ID",
            "DV360_LINE_ITEM_ID",
            "GOOGLE_ADS_CAMPAIGN_ID"
          ],
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Constraint type representing Campaign Manager Campaign ID.",
            "Constraint type representing DV360 Insertion Order ID.",
            "Constraint type representing DV360 Line Item ID.",
            "Constraint type representing Google Ads Campaign ID."
          ]
        }
      }
    },
    "Table": {
      "description": "Defines a table that can be queried.",
      "id": "Table",
      "properties": {
        "columns": {
          "type": "array",
          "description": "A list of table columns.",
          "items": {
            "$ref": "Column"
          }
        },
        "name": {
          "description": "Name that uniquely identifies a table. It has the form customers/[customer_id]/tables/[table_path], e.g. 'customers/123/tables/adh.google_ads_impressions'.",
          "type": "string"
        },
        "tablePath": {
          "description": "Fully qualified table path, e.g. 'adh.google_ads_impressions'.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListUserListQueriesResponse": {
      "properties": {
        "queries": {
          "description": "A list of queries.",
          "items": {
            "$ref": "UserListQuery"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "id": "ListUserListQueriesResponse",
      "type": "object",
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer, sorted by title."
    },
    "JobHistoryExportMetadata": {
      "id": "JobHistoryExportMetadata",
      "properties": {
        "destDataset": {
          "type": "string",
          "description": "Destination BigQuery dataset ID."
        },
        "customerId": {
          "format": "int64",
          "type": "string",
          "description": "The Ads Data Hub customer ID that ran the query."
        },
        "timeRangeStartTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Starting time range for jobs included in this export, inclusive."
        },
        "timeRangeEndTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Ending time range for jobs included in this export, exclusive."
        },
        "exportStartTime": {
          "format": "google-datetime",
          "description": "Time this job history export began.",
          "type": "string"
        },
        "destProject": {
          "description": "Destination BigQuery project ID.",
          "type": "string"
        },
        "exportEndTime": {
          "type": "string",
          "description": "Time this job history export ended.",
          "format": "google-datetime"
        }
      },
      "type": "object",
      "description": "Metadata about a job history export job. This is stored in the metadata field of the google.longrunning.Operation returned by a query execution request."
    },
    "WaitOperationRequest": {
      "type": "object",
      "properties": {
        "timeout": {
          "type": "string",
          "format": "google-duration",
          "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used."
        }
      },
      "id": "WaitOperationRequest",
      "description": "The request message for Operations.WaitOperation."
    },
    "AdsDataLink": {
      "description": "Represents an advertising data link.",
      "type": "object",
      "properties": {
        "platform": {
          "description": "Advertising platform associated with the linked entity.",
          "enumDescriptions": [
            "Unspecified platform.",
            "The entity is associated with Google Ads.",
            "The entity is associated with Google Marketing Platform.",
            "The entity is associated with YouTube Reserve.",
            "The entity is associated with Google Ad Manager.",
            "The entity is associated with FreeWheel."
          ],
          "type": "string",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ]
        },
        "updateTime": {
          "type": "string",
          "description": "Time the link status was last updated.",
          "format": "google-datetime"
        },
        "childEntities": {
          "description": "Related child entities, if any. If the linked entity is a Google Ads customer that corresponds to a customer-manager link, then child_entities will include a fully expanded set of Google Ads customers with data imported into Ads Data Hub through this link.",
          "type": "array",
          "items": {
            "$ref": "Entity"
          }
        },
        "gmpExportScopes": {
          "items": {
            "enumDescriptions": [
              "Unspecified scope.",
              "Should export Display & Video 360 YouTube TrueView data.",
              "Should export Data Transfer data."
            ],
            "type": "string",
            "enum": [
              "GMP_EXPORT_SCOPE_UNSPECIFIED",
              "GMP_EXPORT_SCOPE_YT_TRUEVIEW",
              "GMP_EXPORT_SCOPE_DT"
            ]
          },
          "type": "array",
          "description": "Types of data that will be exported for Display & Video 360 links. Only populated when platform is GOOGLE_MARKETING_PLATFORM. If empty then unspecified and any combination of these may be available."
        },
        "name": {
          "type": "string",
          "description": "Name that uniquely identifies an AdsDataLink resource. It has the form customers/[customer_id]/adsDataLinks/[resource_id]. The resource ID is generated by the server."
        },
        "linkedEntity": {
          "description": "Entity linked through this AdsDataLink.",
          "$ref": "Entity"
        },
        "createTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Time the link was created."
        },
        "metrics": {
          "items": {
            "enumDescriptions": [
              "Unspecified metric.",
              "Metric corresponding to Brand Lift.",
              "Metric corresponding to Brand Safety.",
              "Metric corresponding to Reach, where the customer is the advertiser.",
              "Metric corresponding to Viewability, where the customer is the advertiser.",
              "Metric corresponding to Reach, where the customer is the publisher/content provider.",
              "Metric corresponding to Viewability, where the customer is the publisher/content provider.",
              "Metric corresponding to Conversion Attribution, where the customer is the advertiser."
            ],
            "type": "string",
            "enum": [
              "METRIC_UNSPECIFIED",
              "BRAND_LIFT",
              "BRAND_SAFETY",
              "REACH",
              "VIEWABILITY",
              "PUBLISHER_REACH",
              "PUBLISHER_VIEWABILITY",
              "CONVERSION_ATTRIBUTION"
            ]
          },
          "description": "Metrics accessible through this data link. If empty, no metric restrictions are applied. This field is currently only singlar, and only supported when link entity type is GOOGLE_ADS_CAMPAIGN or YT_RESERVE_LINE_ITEM.",
          "type": "array"
        },
        "parentEntity": {
          "description": "Related parent entity, if any. If the linked entity is a Google Ads campaign, this field will contain a corresponding Google Ads customer to which the campaign belongs.",
          "$ref": "Entity"
        },
        "vendorClientId": {
          "description": "Vendor client ID, if any.",
          "type": "string"
        },
        "customerLink": {
          "$ref": "CustomerLink",
          "description": "Customer link through which the linked data can be accessed. Only name, customer ID, and display_name are populated."
        },
        "status": {
          "enumDescriptions": [
            "Unspecified link status.",
            "The link request has not been answered.",
            "The link has been approved and is active.",
            "The link has been rejected."
          ],
          "type": "string",
          "enum": [
            "LINK_STATUS_UNSPECIFIED",
            "PENDING",
            "APPROVED",
            "REJECTED"
          ],
          "description": "Status of the data link."
        }
      },
      "id": "AdsDataLink"
    },
    "StartAnalysisQueryRequest": {
      "id": "StartAnalysisQueryRequest",
      "description": "Request to start execution on a stored analysis query.",
      "properties": {
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Required. Defines the query execution parameters."
        },
        "customerId": {
          "type": "string",
          "description": "Optional. Ads Data Hub customer executing the query. If not specified, defaults to the customer that owns the query.",
          "format": "int64"
        },
        "destTable": {
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        },
        "destTableParameters": {
          "type": "object",
          "description": "Optional. Additional destination table parameters to be referenced in the query. Keys are names referenced in SQL as 'params.name', and values are BigQuery table paths with the same format and requirements as dest_table.",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "ListCrmBasedUserListQueriesResponse": {
      "type": "object",
      "id": "ListCrmBasedUserListQueriesResponse",
      "description": "Response to a ListCrmBasedUserListQueries request. Contains the queries owned by the specified customer, sorted by title.",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "queries": {
          "description": "A list of queries.",
          "type": "array",
          "items": {
            "$ref": "CrmBasedUserListQuery"
          }
        }
      }
    },
    "ExportEventsRequest": {
      "description": "Request to export panelists event level data.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "Required. The start date (inclusive) for the export.",
          "$ref": "Date"
        },
        "timeZone": {
          "type": "string",
          "description": "Optional. The time zone for the export start and end dates. Timezone can be specified by using Time Zone Database name (https://www.iana.org/time-zones). If not specified, defaults to 'UTC'."
        },
        "platform": {
          "type": "string",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ],
          "enumDescriptions": [
            "Unspecified platform.",
            "The entity is associated with Google Ads.",
            "The entity is associated with Google Marketing Platform.",
            "The entity is associated with YouTube Reserve.",
            "The entity is associated with Google Ad Manager.",
            "The entity is associated with FreeWheel."
          ],
          "description": "Required. Advertising platform associated with the request. Supported Platforms are: GOOGLE_ADS, YOUTUBE_RESERVE, GOOGLE_MARKETING_PLATFORM GOOGLE_AD_MANAGER, and FREEWHEEL."
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Required. Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string"
        },
        "destTable": {
          "description": "Required. Destination BigQuery table for the results with format 'project.dataset.table_name'. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        },
        "customer": {
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "metric": {
          "enumDescriptions": [
            "Unspecified metric.",
            "Metric corresponding to Brand Lift.",
            "Metric corresponding to Brand Safety.",
            "Metric corresponding to Reach, where the customer is the advertiser.",
            "Metric corresponding to Viewability, where the customer is the advertiser.",
            "Metric corresponding to Reach, where the customer is the publisher/content provider.",
            "Metric corresponding to Viewability, where the customer is the publisher/content provider.",
            "Metric corresponding to Conversion Attribution, where the customer is the advertiser."
          ],
          "type": "string",
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ],
          "description": "Required. Type of metric data to export. Supported metric types are: BRAND_LIFT, BRAND_SAFETY, and VIEWABILITY."
        },
        "endDate": {
          "description": "Required. The end date (inclusive) for the export.",
          "$ref": "Date"
        }
      },
      "id": "ExportEventsRequest"
    },
    "ExportJobHistoryRequest": {
      "properties": {
        "dataset": {
          "description": "Required. Customer dataset that the query audit log will be written to.",
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "description": "Required. Customer project ID that the query audit log will be written to."
        },
        "startDate": {
          "description": "Required. Job history will be exported for jobs started on or after start_date but before end_date. start_date cannot be more than 30 days from the current date.",
          "$ref": "Date"
        },
        "endDate": {
          "description": "Required. End date for date range for job history export, exclusive. Currently, only a single day's worth of query job history can be exported.",
          "$ref": "Date"
        },
        "timeZone": {
          "type": "string",
          "description": "Optional. The time zone for the start date. If not specified, defaults to 'UTC'."
        }
      },
      "description": "Request to export job history.",
      "type": "object",
      "id": "ExportJobHistoryRequest"
    },
    "MergeSpec": {
      "deprecated": true,
      "type": "object",
      "description": "Merge instructions for an analysis query result schema.",
      "properties": {
        "columns": {
          "type": "object",
          "additionalProperties": {
            "$ref": "MergeColumn"
          },
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as MERGE_TYPE_UNSPECIFIED."
        }
      },
      "id": "MergeSpec"
    },
    "ArrayValue": {
      "id": "ArrayValue",
      "description": "Defines an array parameter value.",
      "properties": {
        "values": {
          "type": "array",
          "description": "The array values.",
          "items": {
            "$ref": "ParameterValue"
          }
        }
      },
      "type": "object"
    },
    "StructField": {
      "id": "StructField",
      "properties": {
        "fieldName": {
          "type": "string",
          "description": "Field name."
        },
        "fieldType": {
          "description": "Field type.",
          "$ref": "FieldType"
        }
      },
      "type": "object",
      "description": "A key-value pair that defines a single struct field."
    },
    "QueryShare": {
      "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
      "properties": {
        "shareType": {
          "type": "string",
          "enum": [
            "SHARE_TYPE_UNSPECIFIED",
            "MANAGED_CUSTOMERS"
          ],
          "enumDescriptions": [
            "Query sharing type is unspecified.",
            "Query can be run from an Ads Data Hub customer that owns the query, or any Ads Data Hub customer managed by that customer."
          ],
          "description": "Indicates how the query may be shared with other Ads Data Hub customers."
        }
      },
      "id": "QueryShare",
      "type": "object"
    },
    "FrequencyBasedListInfo": {
      "description": "Metadata for frequency-based User List.",
      "id": "FrequencyBasedListInfo",
      "properties": {
        "googleAdsCampaignIds": {
          "type": "array",
          "items": {
            "format": "int64",
            "type": "string"
          },
          "deprecated": true,
          "description": "Ids for Google Ads campaigns that contribute to the frequency."
        },
        "eventMatchers": {
          "items": {
            "$ref": "EventMatcher"
          },
          "description": "Which events contribute to the frequency. When creating frequency-based user lists, eventMatchers is preferred for specifying events contributing to the frequency. dv360LineitemIds, cmCampaignIds, and googleAdsCampaignIds are used if eventMatchers is empty.",
          "type": "array"
        },
        "cmCampaignIds": {
          "type": "array",
          "deprecated": true,
          "description": "Ids for CM campaigns that contribute to the frequency.",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "slidingWindowDays": {
          "type": "integer",
          "description": "Required. Time window size used when calculating the frequency of each event. This is measure in days",
          "format": "int32"
        },
        "dv360LineitemIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "deprecated": true,
          "description": "Ids for DV360 line items that contribute to the frequency.",
          "type": "array"
        },
        "frequencyConstraint": {
          "$ref": "FrequencyConstraint",
          "description": "Describes when a user gets added to the list."
        }
      },
      "type": "object"
    },
    "EventMatcherInfo": {
      "properties": {
        "eventMatcherMetadata": {
          "description": "Metadata for the event matcher.",
          "$ref": "EventMatcherMetadata"
        },
        "eventMatcher": {
          "$ref": "EventMatcher",
          "description": "Event matcher containing the constraint type and valid constraint ID."
        }
      },
      "description": "Event matcher along with its metadata.",
      "id": "EventMatcherInfo",
      "type": "object"
    },
    "StartAnalysisReportRequest": {
      "id": "StartAnalysisReportRequest",
      "type": "object",
      "description": "Request to start execution on a stored analysis report.",
      "properties": {
        "jobId": {
          "type": "string",
          "description": "Optional. User-specified job ID. This should be unique at the customer level."
        }
      }
    },
    "TimeZone": {
      "type": "object",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "properties": {
        "id": {
          "type": "string",
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\"."
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        }
      },
      "id": "TimeZone"
    },
    "CustomerLink": {
      "description": "Represents a link between two Ads Data Hub customers.",
      "properties": {
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Time the link status was last updated."
        },
        "status": {
          "description": "Status of the customer link.",
          "type": "string",
          "enum": [
            "LINK_STATUS_UNSPECIFIED",
            "PENDING",
            "APPROVED",
            "REJECTED"
          ],
          "enumDescriptions": [
            "Unspecified link status.",
            "The link request has not been answered.",
            "The link has been approved and is active.",
            "The link has been rejected."
          ]
        },
        "displayName": {
          "type": "string",
          "description": "Linked customer's display name."
        },
        "directParentCustomerIds": {
          "type": "array",
          "description": "This field will only be set for inbound links. As the linked customer may or may not be directly linked, this field indicates the customer the linked customer is directly linked to. I.e. The current customer gets access to the linked customer through the indirect relationship connected by the direct parent(s). E.g., if A manages B and B manages C, then C will be listed as A's inbound link with its direct_parent_customer_id set to B. In the case of direct links, it will include the customer ID of the current customer.",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "name": {
          "description": "Name that uniquely identifies an customer link. Inbound links have the form customers/[customer_id]/inboundCustomerLinks/[linked_customer_id]. Outbound links have the form customers/[customer_id]/outboundCustomerLinks/[linked_customer_id].",
          "type": "string"
        },
        "customerId": {
          "description": "Linked Ads Data Hub customer ID.",
          "format": "int64",
          "type": "string"
        },
        "accessTypes": {
          "type": "array",
          "description": "Access types that are exposed through this link.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Unspecified access type.",
              "If this is an inbound link, the linked customer has provided access to their Ads Data Hub ads data and can be listed as an ads_data_customer_id during query execution. If this is an outbound link, the linked customer has access to the current customer's ads data.",
              "If this is an inbound link, the linked customer has provided access to their Ads Data Hub match table data and can be listed as a match_data_customer_id during query execution. If this is an outbound link, the linked customer has access to the current customer's match table data.",
              "Management links specify how link permissions propagate across customers. E.g., if A has an inbound management link to B and B has an inbound ads data link to C, then A has an indirect inbound ads data link to C. If A manages B and B manages C, then A will have inbound management links to both B and C, and C will have outbound management links to both A and B.",
              "If this is an inbound link, the linked customer has provided access to create audience on behalf of them. If this is an outbound link, the linked customer can create audience on behalf of the current customer."
            ],
            "enum": [
              "ACCESS_TYPE_UNSPECIFIED",
              "ADS_DATA",
              "MATCH_DATA",
              "MANAGEMENT",
              "AUDIENCE_LIST"
            ]
          }
        }
      },
      "type": "object",
      "id": "CustomerLink"
    },
    "GenerateConsentInviteCodeResponse": {
      "description": "Response to a GenerateConsentInviteCode operation.",
      "properties": {
        "consentInviteCode": {
          "description": "Unique code for inviting panelist to give consent. Generation of this code is idempotent for a given panelist.",
          "type": "string"
        }
      },
      "id": "GenerateConsentInviteCodeResponse",
      "type": "object"
    },
    "StartTransientUserListQueryRequest": {
      "deprecated": true,
      "type": "object",
      "properties": {
        "userListId": {
          "type": "string",
          "format": "int64",
          "description": "Google Ads user list ID. Note that the user list must be managed by the Ads Data Hub customer executing the query."
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Defines the query execution parameters."
        },
        "query": {
          "description": "The query to execute.",
          "$ref": "UserListQuery"
        }
      },
      "description": "Request to start execution of a transient user list query. DEPRECATED - use StartUserListQuery instead of StartTransientUserListQuery.",
      "id": "StartTransientUserListQueryRequest"
    },
    "EventMatcherMetadata": {
      "type": "object",
      "id": "EventMatcherMetadata",
      "properties": {
        "parentEventMatcher": {
          "$ref": "EventMatcher",
          "description": "Related parent EventMatcher, if any. If event_matcher is a DV360 line item, this field will refer to the EventMatcher for the corresponding DV360 insertion order that the line item is part of."
        },
        "displayName": {
          "description": "Name in the underlying data store for the constraint. This could be a campaign name, a line item name etc.",
          "type": "string"
        },
        "entity": {
          "description": "Linked entity from AdsDataLink.",
          "$ref": "Entity"
        }
      },
      "description": "Metadata for the event matcher."
    },
    "CrmBasedUserListQuery": {
      "id": "CrmBasedUserListQuery",
      "description": "Defines a CRM based user list query that can be executed within Ads Data Hub.",
      "properties": {
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        },
        "title": {
          "type": "string",
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type."
        },
        "queryState": {
          "description": "Query state.",
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ],
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ]
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Time the query was last updated.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form: customers/[customer_id]/crmBasedUserListQueries/[resource_id], e.g. 'customers/123/crmBasedUserListQueries/abcd1234'. The resource ID is generated by the server."
        },
        "updateEmail": {
          "description": "Output only. Email address of user who last updated the query.",
          "type": "string",
          "readOnly": true
        },
        "userList": {
          "readOnly": true,
          "description": "Output only. The Ads Data Hub user list resource that can be populated by this CRM based user list query. The resource name has the form: customers/[customer_id]/userLists/[user_list_id]",
          "type": "string"
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Immutable. Time the query was created."
        },
        "queryShare": {
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
          "items": {
            "$ref": "QueryShare"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ValidateAnalysisQueryRequest": {
      "description": "Request to validate an analysis query.",
      "type": "object",
      "properties": {
        "spec": {
          "description": "Optional. The duplicated fields inside query_execution_spec will override the fields outside.",
          "$ref": "QueryExecutionSpec"
        },
        "includePerformanceInfo": {
          "description": "Optional. If true, call BigQuery to dry run the query to collect some performance info. It may take longer compared to only validating the query. The start_date, end_date and parameters inside query_execution_spec need to be set for the dry run.",
          "type": "boolean"
        },
        "query": {
          "$ref": "AnalysisQuery",
          "description": "The query to validate."
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Optional. Specific linked Ads Data Hub customer ID to use for validating ads data and temp table access. Defaults to all the linked customers. Deprecated. Use the ads_data_customer_id inside query_execution_spec.",
          "type": "string",
          "deprecated": true
        },
        "matchDataCustomerId": {
          "deprecated": true,
          "description": "Optional. Specific linked Ads Data Hub customer ID to use for validating match data and temp table access. Defaults to all the linked customers. Deprecated. Use the match_table_customer_id inside query_execution_spec.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "ValidateAnalysisQueryRequest"
    },
    "UserList": {
      "properties": {
        "description": {
          "description": "Required. User list description.",
          "type": "string"
        },
        "adsDataCustomerId": {
          "type": "string",
          "description": "Immutable. Linked Ads Data Hub customer ID associated with this user list. This ID must be specified as the ads_data_customer_id when running UserListQuery jobs using this user list. If absent, the parent customer will be used. This cannot be changed after the list is created.",
          "format": "int64"
        },
        "populateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Time the list was last populated.",
          "type": "string"
        },
        "recipientAdsDataLinks": {
          "description": "AdsDataLinks to entities that this user list is shared with. Has the form of customers/[customer_id]/adsDataLinks/[resource_id] Supported entities are: - Google Ads Customer - DV360 Partner - DV360 Advertiser",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "title": {
          "type": "string",
          "description": "Required. User list title, which is unique for the specified ads_data_customer_id."
        },
        "frequencyList": {
          "$ref": "FrequencyBasedListInfo",
          "description": "User list for frequency capping.",
          "deprecated": true
        },
        "name": {
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies an Ads Data Hub user list. It has the form customers/[customer_id]/userLists/[user_list_id]",
          "readOnly": true
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "The default / unset value.",
            "User list is still open and active.",
            "User list is marked as deleted and should not be used for targeting any more"
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "STATE_ACTIVE",
            "STATE_DELETED"
          ],
          "description": "Output only. State of the user list (Active/Deleted). This value is Read Only and will accessible on get/list requests.",
          "readOnly": true
        },
        "type": {
          "description": "Output only. UserList type values should be consistent with the user_list. This value is Read Only and will accessible on get/list requests.",
          "readOnly": true,
          "enumDeprecated": [
            false,
            false,
            true,
            false
          ],
          "enumDescriptions": [
            "Default value: should not be used.",
            "Remarketing Audiences created with SQL queries on ADH. Remarketing list can be used for positive and negative targeting.",
            "Frequency limited audiences. Audiences of this kind are restricted to negative targeting.",
            "Customer Matching Audiences created with SQL queries on ADH. Customer Matching list can be used for positive and negative targeting."
          ],
          "enum": [
            "USER_LIST_TYPE_UNSPECIFIED",
            "REMARKETING",
            "FREQUENCY_BASED",
            "CRM_BASED"
          ],
          "type": "string"
        },
        "remarketingList": {
          "$ref": "RemarketingListInfo",
          "description": "Remarketing list."
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of the user that created this user list.",
          "readOnly": true,
          "type": "string"
        },
        "userListId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Immutable. User list ID. This field is generated by the service and is used to populate the UserList.",
          "format": "int64"
        },
        "listSize": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of users on the user list. List size update may be delayed.",
          "type": "string"
        },
        "crmList": {
          "$ref": "CrmBasedListInfo",
          "description": "Customer Matching user list."
        }
      },
      "id": "UserList",
      "description": "Defines an Ads Data Hub-managed user list.",
      "type": "object"
    },
    "SubmitVendorAggregatesReportRequest": {
      "properties": {
        "sourceTable": {
          "type": "string",
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'."
        },
        "date": {
          "$ref": "Date",
          "description": "Required. Date (either in vendor-wide time zone or per-row time zone) for the report."
        },
        "customer": {
          "type": "string",
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
        },
        "reportType": {
          "description": "Optional. Type of report being submitted for the given metric. For metrics that don't support multiple report types, this field should not be set. For conversion attribution, default report type is impression based report.",
          "enumDescriptions": [
            "Default value.",
            "For Conversion Attribution only. This is the conversion based table for conversion attribution."
          ],
          "type": "string",
          "enum": [
            "REPORT_TYPE_UNSPECIFIED",
            "CONVERSION_BASED_REPORT"
          ]
        },
        "metric": {
          "description": "Required. Metric which the table is reporting.",
          "enumDescriptions": [
            "Unspecified metric.",
            "Metric corresponding to Brand Lift.",
            "Metric corresponding to Brand Safety.",
            "Metric corresponding to Reach, where the customer is the advertiser.",
            "Metric corresponding to Viewability, where the customer is the advertiser.",
            "Metric corresponding to Reach, where the customer is the publisher/content provider.",
            "Metric corresponding to Viewability, where the customer is the publisher/content provider.",
            "Metric corresponding to Conversion Attribution, where the customer is the advertiser."
          ],
          "type": "string",
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ]
        },
        "instance": {
          "type": "string",
          "description": "Optional. The name of the submission feed instance. This shouldn't be populated for the production aggregates feed, but can be filled out with a prearranged instance name when a vendor works with Google to test a new or alternate version of their submission feed."
        }
      },
      "type": "object",
      "description": "Request to submit a Vendor Metric Summary report.",
      "id": "SubmitVendorAggregatesReportRequest"
    },
    "ParameterType": {
      "id": "ParameterType",
      "properties": {
        "description": {
          "description": "Optional. Parameter description.",
          "type": "string"
        },
        "defaultValue": {
          "$ref": "ParameterValue",
          "description": "Optional. Value that should be used if no parameter value is provided."
        },
        "type": {
          "$ref": "FieldType",
          "description": "Parameter field type."
        }
      },
      "description": "Information about a specific query parameter.",
      "type": "object"
    },
    "ExportEventsResponse": {
      "description": "Response stored in the Operation returned by a successful export events request. Note: the Operations returned by `/v1/operations` requests do not use this response message.",
      "type": "object",
      "id": "ExportEventsResponse",
      "properties": {}
    },
    "PrivacyMessage": {
      "description": "Privacy related information or warning message.",
      "id": "PrivacyMessage",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "PRIVACY_MESSAGE_TYPE_UNSPECIFIED",
            "TOUCHPOINT_ANALYSIS_EXCLUSIONS",
            "MERGE_ROW_NO_DATA_FILTERED",
            "MERGE_ROW_DATA_ON_FEW_USERS_FILTERED",
            "MERGE_ROW_ONE_ROW_WITH_MANY_USERS_FILTERED",
            "MERGE_ROW_NO_MERGE_SPEC",
            "MERGE_ROW_ADDED",
            "MERGE_ROW_TEMPORARILY_UNAVAILABLE",
            "LARGE_CREDIT_OUTLIER_USERS_FILTERED",
            "PRIVACY_MESSAGE_TEMPORARILY_UNAVAILABLE",
            "DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED",
            "TOO_MANY_REPEATED_COMPUTATIONS",
            "REPEATED_RESULTS_REDACTED"
          ],
          "description": "Type of the message.",
          "enumDescriptions": [
            "Unspecified privacy message code.",
            "Touchpoints and/or users excluded from touchpoint analysis.",
            "No data was filtered for this job.",
            "Data filtered, but contained information on too few users.",
            "1 row was filtered, containing information about many users.",
            "Data was filtered, but merge row was not shown because the merge row specification was not configured for the job.",
            "Merge row was added to the job output.",
            "Merge row privacy message was suppressed due to privacy considerations or the merge row information was not available.",
            "Outlier users filtered from touchpoint touchpoint analysis.",
            "Message was suppressed due to privacy considerations or the relevant information was not available.",
            "The data access budget is almost exhausted.",
            "A noise result has been repeated above the warning threshold.",
            "Indicates that a noise result is redacted due to too many repetitions."
          ]
        },
        "details": {
          "type": "string",
          "description": "Text of the message."
        }
      },
      "type": "object"
    },
    "ColumnSummaryRule": {
      "properties": {
        "value": {
          "description": "The constant value to use (only valid for CONSTANT summary type).",
          "$ref": "ParameterValue"
        },
        "type": {
          "description": "Method used to combine the values for the column.",
          "type": "string",
          "enum": [
            "SUMMARY_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ],
          "enumDescriptions": [
            "Unspecified summary type. The summary column value will be NULL.",
            "Replace merged column value with the given constant.",
            "Take the sum of the merged column values."
          ]
        }
      },
      "description": "Merge instructions for a single output column.",
      "id": "ColumnSummaryRule",
      "type": "object"
    },
    "DataDayState": {
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "Date of the data day corresponding to this record."
        },
        "budgetState": {
          "enumDescriptions": [
            "Default unspecified state, this state is not supposed to appear as the output.",
            "Budget corresponding to this data day is within the normal level.",
            "Budget corresponding to this data day is close to be exhausted and some query optimization needs to be performed to avoid exhaustion.",
            "Budget corresponding to this data day is exhausted and queries involving this data day may fail."
          ],
          "description": "State of the budget for this data date.",
          "type": "string",
          "enum": [
            "BUDGET_STATE_UNSPECIFIED",
            "BUDGET_STATE_ENOUGH_BUDGET",
            "BUDGET_STATE_BUDGET_IS_NEARLY_EXHAUSTED",
            "BUDGET_STATE_OUT_OF_BUDGET"
          ]
        }
      },
      "type": "object",
      "id": "DataDayState",
      "description": "A record containing date and state of the budget for this date."
    },
    "ListAnalysisQueriesResponse": {
      "type": "object",
      "id": "ListAnalysisQueriesResponse",
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer.",
      "properties": {
        "queries": {
          "description": "A list of queries.",
          "type": "array",
          "items": {
            "$ref": "AnalysisQuery"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results."
        }
      }
    },
    "AdsDataCustomer": {
      "description": "An Ads Data Hub customer.",
      "type": "object",
      "id": "AdsDataCustomer",
      "properties": {
        "name": {
          "description": "Name that uniquely identifies a customer. It should have the form customers/[customer_id]/adsDataCustomers/[ads_data_customer_id], e.g. 'customers/123/adsDataCustomers/456'.",
          "type": "string"
        }
      }
    },
    "ListTablesResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results."
        },
        "tables": {
          "items": {
            "$ref": "Table"
          },
          "description": "A list of tables.",
          "type": "array"
        }
      },
      "id": "ListTablesResponse",
      "description": "Response to a ListTables request. Contains the Ads Data Hub tables accessible by the customer.",
      "type": "object"
    },
    "OutputArtifacts": {
      "id": "OutputArtifacts",
      "properties": {
        "tempTables": {
          "type": "array",
          "description": "Defines list of temp tables created by an Ads Data Hub query.",
          "items": {
            "$ref": "TempTable"
          }
        }
      },
      "type": "object",
      "description": "Output artifacts created during query execution, e.g. Temp tables are created using CREATE TABLE temp_table AS (...) in an Ads Data Hub query."
    },
    "ExportEventsMetadata": {
      "properties": {
        "startTime": {
          "type": "string",
          "description": "Export start time.",
          "format": "google-datetime"
        },
        "request": {
          "$ref": "ExportEventsRequest",
          "description": "Request for exporting panelists event level data."
        },
        "endTime": {
          "description": "Export end time.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "type": "object",
      "description": "Metadata stored in the Operation returned by a successful export events request. Note: the Operations returned by `/v1/operations` requests do not use this metadata message.",
      "id": "ExportEventsMetadata"
    },
    "SubmitBrandLiftBenchmarkRequest": {
      "id": "SubmitBrandLiftBenchmarkRequest",
      "properties": {
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'. The project, dataset, and table_name must all be provided explicitly. Please refer to Brand Lift Benchmark Schema on ADH Dev Site for detailed schema requirements about the table.",
          "type": "string"
        },
        "instance": {
          "type": "string",
          "description": "Optional. The name of the submission feed instance. This shouldn't be populated for the production brand lift feed, but can be filled out with a prearranged instance name when a vendor works with Google to test a new or alternate version of their submission feed."
        },
        "year": {
          "format": "int32",
          "description": "Required. Year that the benchmark report is for. In the format of YYYY(e.g., 2023).",
          "type": "integer"
        },
        "customer": {
          "type": "string",
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'."
        },
        "quarter": {
          "description": "Required. Quarter that the benchmark report is for. Allowed values are 1, 2, 3, 4. e.g., when submitting report for 2023 Q1, the value should be 1.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "description": "Request to submit a customer generated brand lift quarter benchmark report."
    },
    "ListAdsDataCustomersResponse": {
      "id": "ListAdsDataCustomersResponse",
      "description": "Response to a ListAdsDataCustomersRequest request. Contains the ads data customers accessible by the customer.",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "adsDataCustomers": {
          "type": "array",
          "items": {
            "$ref": "AdsDataCustomer"
          },
          "description": "A list of ads data customers."
        }
      },
      "type": "object"
    },
    "ImportCompletionStatus": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the import completion status resource in the format of 'customers/{id}/importStatus/{date}_{utc_offset}'"
        },
        "percentile": {
          "type": "string",
          "enum": [
            "PERCENTILE_UNSPECIFIED",
            "LESS_THAN_95_PERCENT",
            "AT_LEAST_95_PERCENT",
            "AT_LEAST_99_PERCENT",
            "AT_LEAST_99_9_PERCENT"
          ],
          "enumDescriptions": [
            "Completion status is unknown.",
            "Completion status percentile [0 .. 95.0).",
            "Completion status percentile [0.95 .. 0.99).",
            "Completion status percentile [0.99 .. 0.999).",
            "Completion status percentile [0.999 .. 1.0]."
          ],
          "description": "Percent of Google data being imported across all ADH customers for a given date that is complete."
        }
      },
      "type": "object",
      "id": "ImportCompletionStatus",
      "description": "Response to a GetImportCompletionStatus request."
    },
    "JobHistoryExportResponse": {
      "properties": {
        "destTable": {
          "description": "Destination BigQuery table for the job history export.",
          "type": "string"
        },
        "destDataset": {
          "type": "string",
          "description": "Destination BigQuery dataset for the job history export."
        },
        "destProject": {
          "type": "string",
          "description": "Destination BigQuery project for the job history export."
        },
        "jobCount": {
          "description": "Job count in the final output table.",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Response returned for successful job history exports. This is stored in the response field of the google.longrunning.Operation returned by a job history export request.",
      "id": "JobHistoryExportResponse",
      "type": "object"
    },
    "ParameterValue": {
      "description": "Represents a BigQuery parameter value.",
      "id": "ParameterValue",
      "properties": {
        "arrayValue": {
          "$ref": "ArrayValue",
          "description": "Value for an array parameter."
        },
        "value": {
          "type": "string",
          "description": "Value for a non-array, non-struct parameter."
        },
        "structValue": {
          "$ref": "StructValue",
          "description": "Value for a struct parameter."
        }
      },
      "type": "object"
    },
    "Date": {
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "properties": {
        "year": {
          "format": "int32",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "type": "integer"
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
        },
        "month": {
          "format": "int32",
          "type": "integer",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day."
        }
      },
      "id": "Date",
      "type": "object"
    },
    "SubmitBrandSafetyScoresRequest": {
      "id": "SubmitBrandSafetyScoresRequest",
      "type": "object",
      "description": "Request to submit a Vendor Brand Safety Scores file.",
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "Required. Date for the score file."
        },
        "customer": {
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "instance": {
          "type": "string",
          "description": "Optional. The name of the submission feed instance. This shouldn't be populated for the production scores feed, but can be filled out with a prearranged instance name when a vendor works with Google to test a new or alternate version of their submission feed."
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'.",
          "type": "string"
        }
      }
    },
    "QueryResponse": {
      "id": "QueryResponse",
      "type": "object",
      "properties": {
        "privacyMessages": {
          "description": "List of privacy related information or warning messages.",
          "items": {
            "$ref": "PrivacyMessage"
          },
          "type": "array"
        },
        "userProvidedDataMatch": {
          "description": "Result of a user-provided data match.",
          "$ref": "UserProvidedDataMatch"
        },
        "outputArtifacts": {
          "$ref": "OutputArtifacts",
          "description": "Output artifacts generated during query execution"
        },
        "rowCount": {
          "description": "Row count in the final output table. A wrapped value is used to distinguish between the case where row count is 0 and the case where this information is not available.",
          "format": "int64",
          "type": "string"
        },
        "destinationTables": {
          "items": {
            "$ref": "DestinationTableInfo"
          },
          "type": "array",
          "description": "List of output tables exported by the query."
        }
      },
      "description": "Response returned for successful query execution jobs. This is stored in the response field of the google.longrunning.Operation returned by a query execution request."
    },
    "CheckConsentResponse": {
      "id": "CheckConsentResponse",
      "type": "object",
      "description": "Response to a CheckConsentStatus operation.",
      "properties": {
        "consent": {
          "description": "Details of the consent status of this panelist.",
          "$ref": "Consent"
        }
      }
    },
    "ValidateCrmBasedUserListQueryResponse": {
      "properties": {
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        }
      },
      "type": "object",
      "description": "Response to a ValidateCrmBasedUserListQuery request.",
      "id": "ValidateCrmBasedUserListQueryResponse"
    },
    "SubmitBrandLiftReportResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "properties": {},
      "id": "SubmitBrandLiftReportResponse"
    },
    "YouTubeReserveDimensions": {
      "properties": {
        "metricType": {
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited.",
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "type": "string",
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ]
        },
        "orderIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional YouTube Reserve order ids. If empty, reports on all orders for the specified time period."
        }
      },
      "description": "Filtering dimensions for YouTube Reserve platform.",
      "type": "object",
      "id": "YouTubeReserveDimensions"
    },
    "AddEventMatchersRequest": {
      "properties": {
        "eventMatchers": {
          "description": "Contain only those constraints to add to the user list. The user list specified by user_list should have none of the constraints specified here at the time of the call but can have other pre-existing constraints.",
          "items": {
            "$ref": "EventMatcher"
          },
          "type": "array"
        }
      },
      "type": "object",
      "description": "Request to add a constraint to a frequency-based user list.",
      "id": "AddEventMatchersRequest"
    },
    "QueryPerformanceInfo": {
      "description": "Performance info for the query execution.",
      "id": "QueryPerformanceInfo",
      "type": "object",
      "properties": {
        "processedMb": {
          "type": "string",
          "description": "MiB data this query reads. Set if the data size is equal to or larger than 1 MiB. -1 means we could not fetch the processed bytes for this query.",
          "format": "int64"
        },
        "lessThanOneMb": {
          "description": "True if the processed data is less than 1 MiB.",
          "type": "boolean"
        },
        "zeroMb": {
          "type": "boolean",
          "description": "True if the processed data is 0 bytes."
        }
      }
    },
    "Empty": {
      "properties": {},
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "type": "object"
    }
  },
  "ownerName": "Google",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "mtlsRootUrl": "https://adsdatahub.mtls.googleapis.com/",
  "batchPath": "batch",
  "description": "API for executing Ads Data Hub queries.",
  "rootUrl": "https://adsdatahub.googleapis.com/",
  "kind": "discovery#restDescription",
  "fullyEncodeReservedExpansion": true,
  "protocol": "rest",
  "parameters": {
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "uploadType": {
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "location": "query",
      "description": "Data format for response."
    },
    "$.xgafv": {
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "description": "V1 error format."
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "location": "query",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    }
  },
  "revision": "20260820",
  "id": "adsdatahub:v1",
  "basePath": "",
  "name": "adsdatahub"
}
