{
  "resources": {
    "customers": {
      "methods": {
        "list": {
          "id": "adsdatahub.customers.list",
          "response": {
            "$ref": "ListCustomersResponse"
          },
          "path": "v1/customers",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers",
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Page token, returned by previous call, to request the next page of results, if any.",
              "type": "string"
            },
            "pageSize": {
              "description": "Maximum number of items to return. If 0, the server will determine the number of customers to return.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            }
          },
          "parameterOrder": [],
          "description": "Lists Ads Data Hub customers to which the current user has access."
        },
        "get": {
          "path": "v1/{+name}",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}",
          "id": "adsdatahub.customers.get",
          "response": {
            "$ref": "Customer"
          },
          "parameters": {
            "name": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Required. Full resource name, e.g. 'customers/123'.",
              "type": "string",
              "required": true
            }
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Retrieves the requested Ads Data Hub customer."
        },
        "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.",
          "parameterOrder": [
            "customer"
          ],
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "required": true
            }
          },
          "request": {
            "$ref": "SubmitVendorReportIdMappingRequest"
          },
          "flatPath": "v1/customers/{customersId}:submitVendorReportIdMapping",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+customer}:submitVendorReportIdMapping",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.submitVendorReportIdMapping",
          "response": {
            "$ref": "Operation"
          }
        },
        "describeValidFrequencyLimitingEventMatchers": {
          "id": "adsdatahub.customers.describeValidFrequencyLimitingEventMatchers",
          "response": {
            "$ref": "DescribeValidFrequencyLimitingEventMatchersResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:describeValidFrequencyLimitingEventMatchers",
          "path": "v1/{+customer}:describeValidFrequencyLimitingEventMatchers",
          "httpMethod": "GET",
          "deprecated": true,
          "parameterOrder": [
            "customer"
          ],
          "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.",
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Customer resource name, e.g. 'customers/123'.",
              "type": "string",
              "required": true
            },
            "filter": {
              "location": "query",
              "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"
            },
            "adsDataCustomerId": {
              "format": "int64",
              "description": "Ads Data Owning customer's ID, e.g. 456.",
              "type": "string",
              "location": "query"
            },
            "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",
              "format": "int32",
              "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
              "type": "integer"
            }
          }
        },
        "exportJobHistory": {
          "path": "v1/{+customer}:exportJobHistory",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:exportJobHistory",
          "id": "adsdatahub.customers.exportJobHistory",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. ADH customer ID to fetch jobs for, with the format 'customers/123'.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "description": "Exports job history of a customer account to customer-selected BigQuery dataset.",
          "request": {
            "$ref": "ExportJobHistoryRequest"
          }
        },
        "submitBrandLiftBenchmark": {
          "request": {
            "$ref": "SubmitBrandLiftBenchmarkRequest"
          },
          "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"
          ],
          "parameters": {
            "customer": {
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "location": "path"
            }
          },
          "id": "adsdatahub.customers.submitBrandLiftBenchmark",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "v1/customers/{customersId}:submitBrandLiftBenchmark",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+customer}:submitBrandLiftBenchmark",
          "httpMethod": "POST"
        },
        "exportBrandSafetyEntities": {
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:exportBrandSafetyEntities",
          "path": "v1/{+name}:exportBrandSafetyEntities",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.exportBrandSafetyEntities",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Starts execution of Brand Safety entity export.",
          "parameters": {
            "name": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "required": true
            }
          },
          "request": {
            "$ref": "ExportBrandSafetyEntitiesRequest"
          }
        },
        "getImportCompletionStatus": {
          "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%\".",
          "parameterOrder": [
            "customer"
          ],
          "parameters": {
            "date.year": {
              "location": "query",
              "format": "int32",
              "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
              "type": "integer"
            },
            "date.day": {
              "location": "query",
              "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.",
              "type": "integer"
            },
            "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": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "required": true
            },
            "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"
            }
          },
          "id": "adsdatahub.customers.getImportCompletionStatus",
          "response": {
            "$ref": "ImportCompletionStatus"
          },
          "flatPath": "v1/customers/{customersId}/importCompletionStatus",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+customer}/importCompletionStatus",
          "httpMethod": "GET"
        },
        "submitVendorAggregatesReport": {
          "flatPath": "v1/customers/{customersId}:submitVendorAggregatesReport",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+customer}:submitVendorAggregatesReport",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.submitVendorAggregatesReport",
          "response": {
            "$ref": "Operation"
          },
          "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.",
          "parameterOrder": [
            "customer"
          ],
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "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'.",
              "type": "string"
            }
          },
          "request": {
            "$ref": "SubmitVendorAggregatesReportRequest"
          }
        },
        "generateDv360IvtVideoViewabilityReport": {
          "path": "v1/{+customer}:generateDv360IvtVideoViewabilityReport",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:generateDv360IvtVideoViewabilityReport",
          "id": "adsdatahub.customers.generateDv360IvtVideoViewabilityReport",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "customer": {
              "required": true,
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "location": "path"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "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"
          }
        },
        "submitBrandLiftStudyReport": {
          "parameters": {
            "customer": {
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "location": "path"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "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.",
          "request": {
            "$ref": "SubmitBrandLiftStudyReportRequest"
          },
          "path": "v1/{+customer}:submitBrandLiftStudyReport",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:submitBrandLiftStudyReport",
          "id": "adsdatahub.customers.submitBrandLiftStudyReport",
          "response": {
            "$ref": "Operation"
          }
        },
        "generateIvtReport": {
          "id": "adsdatahub.customers.generateIvtReport",
          "response": {
            "$ref": "Operation"
          },
          "path": "v1/{+name}:generateIvtReport",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:generateIvtReport",
          "request": {
            "$ref": "GenerateIvtReportRequest"
          },
          "parameters": {
            "name": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "required": true
            }
          },
          "parameterOrder": [
            "name"
          ],
          "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/filtered-row-summary) (the row with no day) will contain the sum of redacted rows."
        },
        "submitBrandSafetyScores": {
          "flatPath": "v1/customers/{customersId}:submitBrandSafetyScores",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "path": "v1/{+customer}:submitBrandSafetyScores",
          "httpMethod": "POST",
          "id": "adsdatahub.customers.submitBrandSafetyScores",
          "response": {
            "$ref": "Operation"
          },
          "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.",
          "parameterOrder": [
            "customer"
          ],
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "location": "path",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "type": "string",
              "required": true
            }
          },
          "request": {
            "$ref": "SubmitBrandSafetyScoresRequest"
          }
        }
      },
      "resources": {
        "adsDataLinks": {
          "methods": {
            "list": {
              "description": "Lists links between the specified customer and other Google advertising entities.",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "type": "string",
                  "location": "query"
                },
                "filter": {
                  "location": "query",
                  "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"
                },
                "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"
                }
              },
              "id": "adsdatahub.customers.adsDataLinks.list",
              "response": {
                "$ref": "ListAdsDataLinksResponse"
              },
              "flatPath": "v1/customers/{customersId}/adsDataLinks",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/adsDataLinks",
              "httpMethod": "GET"
            },
            "batchReject": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchReject",
              "path": "v1/{+parent}/adsDataLinks:batchReject",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.adsDataLinks.batchReject",
              "response": {
                "$ref": "BatchRejectAdsDataLinksResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Reject a list of pending ads data links.",
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to reject must be under this customer.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "BatchRejectAdsDataLinksRequest"
              }
            },
            "batchApprove": {
              "description": "Approve a list of pending ads data links.",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to approve must be under this customer.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "BatchApproveAdsDataLinksRequest"
              },
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchApprove",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/adsDataLinks:batchApprove",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.adsDataLinks.batchApprove",
              "response": {
                "$ref": "BatchApproveAdsDataLinksResponse"
              }
            }
          }
        },
        "crmBasedUserListQueries": {
          "methods": {
            "getReport": {
              "id": "adsdatahub.customers.crmBasedUserListQueries.getReport",
              "response": {
                "$ref": "Report"
              },
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "description": "Retrieves the requested CRM based user list report.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                  "location": "path"
                }
              }
            },
            "patch": {
              "request": {
                "$ref": "CrmBasedUserListQuery"
              },
              "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.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": 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.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "location": "path"
                },
                "updateMask": {
                  "location": "query",
                  "format": "google-fieldmask",
                  "description": "Field mask used to support partial updates.",
                  "type": "string"
                }
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.patch",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "PATCH"
            },
            "create": {
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.crmBasedUserListQueries.create",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "description": "Creates a CRM based user list query for later execution. No query validation is performed at this time.",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "request": {
                "$ref": "CrmBasedUserListQuery"
              }
            },
            "list": {
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "id": "adsdatahub.customers.crmBasedUserListQueries.list",
              "response": {
                "$ref": "ListCrmBasedUserListQueriesResponse"
              },
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return.",
                  "type": "integer"
                },
                "pageToken": {
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "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”",
                  "type": "string",
                  "location": "query"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists the CRM based user list queries owned by the specified customer."
            },
            "validate": {
              "request": {
                "$ref": "ValidateCrmBasedUserListQueryRequest"
              },
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Performs static validation checks on the provided CRM based user list query to ensure valid output schema.",
              "id": "adsdatahub.customers.crmBasedUserListQueries.validate",
              "response": {
                "$ref": "ValidateCrmBasedUserListQueryResponse"
              },
              "path": "v1/{+parent}/crmBasedUserListQueries:validate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries:validate"
            },
            "delete": {
              "id": "adsdatahub.customers.crmBasedUserListQueries.delete",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes a CRM based user list query.",
              "parameters": {
                "name": {
                  "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'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "location": "path"
                }
              }
            },
            "updateReport": {
              "request": {
                "$ref": "Report"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Updates CRM based user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                  "location": "path",
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "type": "string",
                  "required": true
                }
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.updateReport",
              "response": {
                "$ref": "Report"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "path": "v1/{+name}",
              "httpMethod": "PATCH"
            },
            "get": {
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "location": "path",
                  "description": "Required. Full resource name, e.g. 'customers/123/crmBasedUserListQueries/abcd1234'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested CRM based user list query.",
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "id": "adsdatahub.customers.crmBasedUserListQueries.get",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              }
            }
          },
          "resources": {
            "report": {
              "methods": {
                "start": {
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.start",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report:start",
                  "path": "v1/{+name}:start",
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "StartCrmBasedUserListReportRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Starts execution on a stored CRM based user list report.",
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                      "location": "path",
                      "required": true,
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'.",
                      "type": "string"
                    }
                  }
                },
                "updateSchedule": {
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule",
                  "path": "v1/{+name}",
                  "httpMethod": "PATCH",
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.updateSchedule",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Updates CRM based user list schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "location": "path",
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "type": "string",
                      "required": true
                    }
                  },
                  "request": {
                    "$ref": "Schedule"
                  }
                },
                "getSchedule": {
                  "parameters": {
                    "name": {
                      "required": true,
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report/schedule'.",
                      "type": "string",
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Retrieves the requested CRM based user list schedule.",
                  "path": "v1/{+name}",
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule",
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                }
              }
            }
          }
        },
        "tables": {
          "methods": {
            "get": {
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/tables/{tablesId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.tables.get",
              "response": {
                "$ref": "Table"
              },
              "parameters": {
                "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.",
                  "type": "string",
                  "format": "int64",
                  "location": "query"
                },
                "name": {
                  "pattern": "^customers/[^/]+/tables/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/adh.google_ads_impressions.",
                  "type": "string"
                },
                "matchDataCustomerId": {
                  "format": "int64",
                  "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.",
                  "type": "string",
                  "location": "query"
                }
              },
              "description": "Retrieves the requested Ads Data Hub table.",
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "flatPath": "v1/customers/{customersId}/tables",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/tables",
              "httpMethod": "GET",
              "id": "adsdatahub.customers.tables.list",
              "response": {
                "$ref": "ListTablesResponse"
              },
              "description": "Lists the Ads Data Hub tables to which the specified customer has access.",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables 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. The page token must have been returned by a call with the same request parameters.",
                  "type": "string",
                  "location": "query"
                },
                "adsDataCustomerId": {
                  "location": "query",
                  "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"
                },
                "parent": {
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                },
                "matchDataCustomerId": {
                  "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.",
                  "type": "string"
                }
              }
            }
          }
        },
        "inboundCustomerLinks": {
          "methods": {
            "list": {
              "parameters": {
                "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": {
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "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"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "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.",
              "id": "adsdatahub.customers.inboundCustomerLinks.list",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              },
              "path": "v1/{+parent}/inboundCustomerLinks",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/inboundCustomerLinks"
            }
          }
        },
        "outboundCustomerLinks": {
          "methods": {
            "list": {
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                },
                "pageToken": {
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "type": "string"
                },
                "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"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists links where the specified customer has granted access to other Ads Data Hub customers. Only direct links are included.",
              "path": "v1/{+parent}/outboundCustomerLinks",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/outboundCustomerLinks",
              "id": "adsdatahub.customers.outboundCustomerLinks.list",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              }
            }
          }
        },
        "analysisQueries": {
          "methods": {
            "validate": {
              "id": "adsdatahub.customers.analysisQueries.validate",
              "response": {
                "$ref": "ValidateAnalysisQueryResponse"
              },
              "path": "v1/{+parent}/analysisQueries:validate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries:validate",
              "request": {
                "$ref": "ValidateAnalysisQueryRequest"
              },
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Performs static validation checks on the provided analysis query."
            },
            "updateReport": {
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "id": "adsdatahub.customers.analysisQueries.updateReport",
              "response": {
                "$ref": "Report"
              },
              "description": "Updates analysis report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$",
                  "location": "path",
                  "required": true,
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "Report"
              }
            },
            "startTransient": {
              "request": {
                "$ref": "StartTransientAnalysisQueryRequest"
              },
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "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.",
              "id": "adsdatahub.customers.analysisQueries.startTransient",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1/{+parent}/analysisQueries:startTransient",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries:startTransient"
            },
            "start": {
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "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.",
              "request": {
                "$ref": "StartAnalysisQueryRequest"
              },
              "path": "v1/{+name}:start",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}:start",
              "id": "adsdatahub.customers.analysisQueries.start",
              "response": {
                "$ref": "Operation"
              }
            },
            "getReport": {
              "parameters": {
                "name": {
                  "pattern": "^customers$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                  "type": "string"
                },
                "v1Id": {
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "analysisQueriesId": {
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name",
                "v1Id",
                "analysisQueriesId"
              ],
              "description": "Retrieves the requested analysis report.",
              "id": "adsdatahub.customers.analysisQueries.getReport",
              "response": {
                "$ref": "Report"
              },
              "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report"
            },
            "create": {
              "request": {
                "$ref": "AnalysisQuery"
              },
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Creates an analysis query for later execution. No query validation is performed at this time.",
              "id": "adsdatahub.customers.analysisQueries.create",
              "response": {
                "$ref": "AnalysisQuery"
              },
              "path": "v1/{+parent}/analysisQueries",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries"
            },
            "delete": {
              "parameters": {
                "name": {
                  "required": true,
                  "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'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes an analysis query.",
              "id": "adsdatahub.customers.analysisQueries.delete",
              "response": {
                "$ref": "Empty"
              },
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}"
            },
            "list": {
              "parameters": {
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
                  "type": "string",
                  "location": "query"
                },
                "filter": {
                  "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”",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return.",
                  "type": "integer",
                  "location": "query"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "description": "Lists the analysis queries owned by the specified customer.",
              "parameterOrder": [
                "parent"
              ],
              "id": "adsdatahub.customers.analysisQueries.list",
              "response": {
                "$ref": "ListAnalysisQueriesResponse"
              },
              "path": "v1/{+parent}/analysisQueries",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/analysisQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "get": {
              "description": "Retrieves the requested analysis query.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "type": "string"
                }
              },
              "id": "adsdatahub.customers.analysisQueries.get",
              "response": {
                "$ref": "AnalysisQuery"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "GET"
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "description": "Updates an existing analysis query. Partial updates are supported. Please review the AnalysisQuery resource to see which fields can be updated.",
              "parameters": {
                "name": {
                  "required": true,
                  "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",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "location": "path"
                },
                "updateMask": {
                  "location": "query",
                  "format": "google-fieldmask",
                  "description": "Field mask used to support partial updates.",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "AnalysisQuery"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "id": "adsdatahub.customers.analysisQueries.patch",
              "response": {
                "$ref": "AnalysisQuery"
              }
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "parameters": {
                    "name": {
                      "pattern": "^customers$",
                      "location": "path",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report/schedule'.",
                      "type": "string",
                      "required": true
                    },
                    "v1Id": {
                      "type": "string",
                      "required": true,
                      "location": "path"
                    },
                    "analysisQueriesId": {
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "description": "Retrieves the requested analysis schedule.",
                  "parameterOrder": [
                    "name",
                    "v1Id",
                    "analysisQueriesId"
                  ],
                  "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "httpMethod": "GET",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "id": "adsdatahub.customers.analysisQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                },
                "start": {
                  "id": "adsdatahub.customers.analysisQueries.report.start",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1/{+name}:start",
                  "httpMethod": "POST",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "request": {
                    "$ref": "StartAnalysisReportRequest"
                  },
                  "parameters": {
                    "name": {
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                      "type": "string",
                      "required": true,
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$",
                      "location": "path"
                    }
                  },
                  "description": "Starts execution on a stored analysis report.",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "updateSchedule": {
                  "description": "Updates analysis schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "type": "string",
                      "required": true,
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report/schedule$",
                      "location": "path"
                    }
                  },
                  "request": {
                    "$ref": "Schedule"
                  },
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "path": "v1/{+name}",
                  "httpMethod": "PATCH",
                  "id": "adsdatahub.customers.analysisQueries.report.updateSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                }
              }
            }
          }
        },
        "userLists": {
          "methods": {
            "create": {
              "id": "adsdatahub.customers.userLists.create",
              "response": {
                "$ref": "UserList"
              },
              "path": "v1/{+parent}/userLists",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/userLists",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "UserList"
              },
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. The parent resource name that owns the user list, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "description": "Creates an Ads Data Hub-managed user list.",
              "parameterOrder": [
                "parent"
              ]
            },
            "generateFrequencyListMemberships": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:generateFrequencyListMemberships",
              "path": "v1/{+name}:generateFrequencyListMemberships",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userLists.generateFrequencyListMemberships",
              "response": {
                "$ref": "Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Generate memberships for the UserList. The UserList must have UserListType FREQUENCY_BASED.",
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType FREQUENCY_BASED.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path"
                }
              },
              "deprecated": true,
              "request": {
                "$ref": "GenerateFrequencyListMembershipsRequest"
              }
            },
            "removeRecipients": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:removeRecipients",
              "path": "v1/{+userList}:removeRecipients",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userLists.removeRecipients",
              "response": {
                "$ref": "UserList"
              },
              "parameterOrder": [
                "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.",
              "parameters": {
                "userList": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "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]",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "RemoveRecipientsRequest"
              }
            },
            "get": {
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "id": "adsdatahub.customers.userLists.get",
              "response": {
                "$ref": "UserList"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested Ads Data Hub-managed user list."
            },
            "list": {
              "path": "v1/{+parent}/userLists",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/userLists",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userLists.list",
              "response": {
                "$ref": "ListUserListsResponse"
              },
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of user lists to return.",
                  "type": "integer",
                  "format": "int32"
                },
                "showDeleted": {
                  "location": "query",
                  "description": "If set to true, deleted user lists will be included in the response.",
                  "type": "boolean"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                },
                "filter": {
                  "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",
                  "location": "query"
                },
                "view": {
                  "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."
                  ],
                  "description": "Specifies which fields to include in each user list.",
                  "type": "string",
                  "location": "query"
                }
              },
              "description": "Lists the user lists managed by the specified Ads Data Hub customer.",
              "parameterOrder": [
                "parent"
              ]
            },
            "addRecipients": {
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addRecipients",
              "path": "v1/{+userList}:addRecipients",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userLists.addRecipients",
              "response": {
                "$ref": "UserList"
              },
              "parameterOrder": [
                "userList"
              ],
              "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.",
              "parameters": {
                "userList": {
                  "required": true,
                  "description": "Required. Full resource name of the user list to be updated. Has the form of customers/[customer_id]/userLists/[userlist_id]",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "AddRecipientsRequest"
              }
            },
            "updateCrmBasedUserListMemberships": {
              "id": "adsdatahub.customers.userLists.updateCrmBasedUserListMemberships",
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:updateCrmBasedUserListMemberships",
              "path": "v1/{+name}:updateCrmBasedUserListMemberships",
              "httpMethod": "POST",
              "request": {
                "$ref": "UpdateCrmBasedUserListMembershipsRequest"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Update memberships for the UserList. The UserList must have UserListType CRM_BASED.",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType CRM_BASED.",
                  "type": "string"
                }
              }
            },
            "delete": {
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "id": "adsdatahub.customers.userLists.delete",
              "response": {
                "$ref": "UserList"
              },
              "description": "Delete the requested Ads Data Hub-managed user list.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "type": "string"
                }
              }
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "description": "Updates the requested Ads Data Hub-managed user list.",
              "parameters": {
                "name": {
                  "required": true,
                  "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]",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path"
                },
                "updateMask": {
                  "format": "google-fieldmask",
                  "description": "Required. Field mask to support partial updates. Only the following paths may be updated via the API: - title - description - recipient_ads_data_links",
                  "type": "string",
                  "location": "query"
                }
              },
              "request": {
                "$ref": "UserList"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "id": "adsdatahub.customers.userLists.patch",
              "response": {
                "$ref": "UserList"
              }
            },
            "addEventMatchers": {
              "path": "v1/{+userList}:addEventMatchers",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addEventMatchers",
              "id": "adsdatahub.customers.userLists.addEventMatchers",
              "response": {
                "$ref": "UserList"
              },
              "parameters": {
                "userList": {
                  "description": "Required. Full resource name, has the form of ‘customers/[customer_id]/userLists/[userlist_id]’. UserList must have UserListType FREQUENCY_BASED.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "userList"
              ],
              "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\".",
              "request": {
                "$ref": "AddEventMatchersRequest"
              },
              "deprecated": true
            }
          }
        },
        "panelists": {
          "methods": {
            "checkConsent": {
              "id": "adsdatahub.customers.panelists.checkConsent",
              "response": {
                "$ref": "CheckConsentResponse"
              },
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:checkConsent",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}:checkConsent",
              "httpMethod": "POST",
              "request": {
                "$ref": "CheckConsentRequest"
              },
              "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.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path"
                }
              }
            },
            "exportEvents": {
              "path": "v1/{+customer}/panelists:exportEvents",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/panelists:exportEvents",
              "id": "adsdatahub.customers.panelists.exportEvents",
              "response": {
                "$ref": "Operation"
              },
              "parameters": {
                "customer": {
                  "pattern": "^customers/[^/]+$",
                  "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'.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "customer"
              ],
              "description": "Exports panelists event level data.",
              "request": {
                "$ref": "ExportEventsRequest"
              }
            },
            "createTempMatchedEventData": {
              "parameters": {
                "customer": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "customer"
              ],
              "description": "Creates temp table with panelist matched event data. The results will be written to the specified destination temp table.",
              "request": {
                "$ref": "CreateTempMatchedEventDataRequest"
              },
              "path": "v1/{+customer}/panelists:createTempMatchedEventData",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/panelists:createTempMatchedEventData",
              "id": "adsdatahub.customers.panelists.createTempMatchedEventData",
              "response": {
                "$ref": "Operation"
              }
            },
            "revokeConsent": {
              "id": "adsdatahub.customers.panelists.revokeConsent",
              "response": {
                "$ref": "Empty"
              },
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:revokeConsent",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}:revokeConsent",
              "httpMethod": "POST",
              "request": {
                "$ref": "RevokeConsentRequest"
              },
              "description": "Revokes one type of consent for a panelist.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path"
                }
              }
            },
            "generateConsentInviteCode": {
              "id": "adsdatahub.customers.panelists.generateConsentInviteCode",
              "response": {
                "$ref": "GenerateConsentInviteCodeResponse"
              },
              "path": "v1/{+name}:generateConsentInviteCode",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:generateConsentInviteCode",
              "request": {
                "$ref": "GenerateConsentInviteCodeRequest"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "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."
            }
          }
        },
        "tempTables": {
          "methods": {
            "list": {
              "parameters": {
                "adsDataCustomerId": {
                  "location": "query",
                  "format": "int64",
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "type": "string"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string"
                },
                "matchDataCustomerId": {
                  "format": "int64",
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables to return.",
                  "type": "integer"
                },
                "queryType": {
                  "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"
                  ],
                  "enumDescriptions": [
                    "No query type specified.",
                    "An AnalysisQuery.",
                    "A UserListQuery.",
                    "A query triggered by a special endpoint."
                  ]
                },
                "pageToken": {
                  "location": "query",
                  "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"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "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.",
              "id": "adsdatahub.customers.tempTables.list",
              "response": {
                "$ref": "ListTempTablesResponse"
              },
              "path": "v1/{+parent}/tempTables",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/tempTables"
            },
            "get": {
              "id": "adsdatahub.customers.tempTables.get",
              "response": {
                "$ref": "TempTable"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/tempTables/{tempTablesId}",
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested Ads Data Hub temp table.",
              "parameters": {
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/resource-id'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/tempTables/[^/]+$",
                  "location": "path"
                }
              }
            }
          }
        },
        "userListQueries": {
          "methods": {
            "delete": {
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "id": "adsdatahub.customers.userListQueries.delete",
              "response": {
                "$ref": "Empty"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "location": "path",
                  "required": true,
                  "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'.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes a user list query."
            },
            "list": {
              "id": "adsdatahub.customers.userListQueries.list",
              "response": {
                "$ref": "ListUserListQueriesResponse"
              },
              "path": "v1/{+parent}/userListQueries",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return.",
                  "type": "integer",
                  "format": "int32",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "type": "string",
                  "location": "query"
                },
                "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"
                }
              },
              "description": "Lists the user list queries owned by the specified customer.",
              "parameterOrder": [
                "parent"
              ]
            },
            "get": {
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "id": "adsdatahub.customers.userListQueries.get",
              "response": {
                "$ref": "UserListQuery"
              },
              "parameters": {
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested user list query."
            },
            "patch": {
              "id": "adsdatahub.customers.userListQueries.patch",
              "response": {
                "$ref": "UserListQuery"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "request": {
                "$ref": "UserListQuery"
              },
              "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.",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "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"
                },
                "updateMask": {
                  "location": "query",
                  "description": "Field mask used to support partial updates.",
                  "type": "string",
                  "format": "google-fieldmask"
                }
              }
            },
            "validate": {
              "description": "Performs static validation checks on the provided user list query.",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+$",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "ValidateUserListQueryRequest"
              },
              "flatPath": "v1/customers/{customersId}/userListQueries:validate",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+parent}/userListQueries:validate",
              "httpMethod": "POST",
              "id": "adsdatahub.customers.userListQueries.validate",
              "response": {
                "$ref": "ValidateUserListQueryResponse"
              }
            },
            "updateReport": {
              "id": "adsdatahub.customers.userListQueries.updateReport",
              "response": {
                "$ref": "Report"
              },
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "Report"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                  "location": "path",
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "type": "string",
                  "required": true
                }
              },
              "description": "Updates remarketing user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "parameterOrder": [
                "name"
              ]
            },
            "startTransient": {
              "id": "adsdatahub.customers.userListQueries.startTransient",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1/{+parent}/userListQueries:startTransient",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/userListQueries:startTransient",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "request": {
                "$ref": "StartTransientUserListQueryRequest"
              },
              "deprecated": true,
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'.",
                  "type": "string"
                }
              },
              "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.",
              "parameterOrder": [
                "parent"
              ]
            },
            "start": {
              "request": {
                "$ref": "StartUserListQueryRequest"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "type": "string"
                }
              },
              "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.",
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.userListQueries.start",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1/{+name}:start",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}:start",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "getReport": {
              "description": "Retrieves the requested remarketing user list report.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                  "location": "path"
                }
              },
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "id": "adsdatahub.customers.userListQueries.getReport",
              "response": {
                "$ref": "Report"
              }
            },
            "create": {
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "type": "string"
                }
              },
              "description": "Creates a user list query for later execution. No query validation is performed at this time.",
              "parameterOrder": [
                "parent"
              ],
              "request": {
                "$ref": "UserListQuery"
              },
              "path": "v1/{+parent}/userListQueries",
              "httpMethod": "POST",
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userListQueries.create",
              "response": {
                "$ref": "UserListQuery"
              }
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Retrieves the requested remarketing user list schedule.",
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$",
                      "location": "path",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report/schedule'.",
                      "type": "string",
                      "required": true
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "path": "v1/{+name}",
                  "httpMethod": "GET",
                  "id": "adsdatahub.customers.userListQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                },
                "start": {
                  "request": {
                    "$ref": "StartRemarketingUserListReportRequest"
                  },
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                      "location": "path",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                      "type": "string",
                      "required": true
                    }
                  },
                  "description": "Starts execution on a stored remarketing user list report.",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "adsdatahub.customers.userListQueries.report.start",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1/{+name}:start",
                  "httpMethod": "POST",
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ]
                },
                "updateSchedule": {
                  "request": {
                    "$ref": "Schedule"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Updates remarketing user list schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated.",
                  "parameters": {
                    "name": {
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "type": "string",
                      "required": true,
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$",
                      "location": "path"
                    }
                  },
                  "id": "adsdatahub.customers.userListQueries.report.updateSchedule",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "path": "v1/{+name}",
                  "httpMethod": "PATCH"
                }
              }
            }
          }
        },
        "adsDataCustomers": {
          "methods": {
            "list": {
              "id": "adsdatahub.customers.adsDataCustomers.list",
              "response": {
                "$ref": "ListAdsDataCustomersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataCustomers",
              "path": "v1/{+parent}/adsDataCustomers",
              "httpMethod": "GET",
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists ads data customers accessible from the customer.",
              "parameters": {
                "pageToken": {
                  "description": "Page token, returned by previous call, 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 ads data customers to return.",
                  "type": "integer",
                  "format": "int32"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The customer associated with these ads data customers. Format: customers/{customer}",
                  "type": "string"
                }
              }
            },
            "get": {
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}",
              "id": "adsdatahub.customers.adsDataCustomers.get",
              "response": {
                "$ref": "AdsDataCustomer"
              },
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/adsDataCustomers/456'.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Retrieves the requested Ads Data Hub customer."
            },
            "getDataAccessBudget": {
              "parameters": {
                "name": {
                  "required": true,
                  "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'.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+/dataAccessBudget$",
                  "location": "path"
                }
              },
              "description": "Retrieves the data access budget for the requested ads data source for the last 366 days.",
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.adsDataCustomers.getDataAccessBudget",
              "response": {
                "$ref": "DataAccessBudget"
              },
              "path": "v1/{+name}",
              "httpMethod": "GET",
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}/dataAccessBudget",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            }
          }
        }
      }
    },
    "operations": {
      "methods": {
        "wait": {
          "request": {
            "$ref": "WaitOperationRequest"
          },
          "parameterOrder": [
            "name"
          ],
          "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.",
          "parameters": {
            "name": {
              "required": true,
              "description": "The name of the operation resource to wait on.",
              "type": "string",
              "pattern": "^operations/.*$",
              "location": "path"
            }
          },
          "id": "adsdatahub.operations.wait",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/operations/{operationsId}:wait",
          "path": "v1/{+name}:wait",
          "httpMethod": "POST"
        },
        "cancel": {
          "request": {
            "$ref": "CancelOperationRequest"
          },
          "parameters": {
            "name": {
              "pattern": "^operations/.*$",
              "location": "path",
              "description": "The name of the operation resource to be cancelled.",
              "type": "string",
              "required": true
            }
          },
          "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`.",
          "id": "adsdatahub.operations.cancel",
          "response": {
            "$ref": "Empty"
          },
          "path": "v1/{+name}:cancel",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/operations/{operationsId}:cancel"
        },
        "get": {
          "id": "adsdatahub.operations.get",
          "response": {
            "$ref": "Operation"
          },
          "path": "v1/{+name}",
          "httpMethod": "GET",
          "flatPath": "v1/operations/{operationsId}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource.",
              "type": "string",
              "required": true,
              "pattern": "^operations/.*$",
              "location": "path"
            }
          },
          "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.",
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "path": "v1/{+name}",
          "httpMethod": "GET",
          "flatPath": "v1/operations",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.operations.list",
          "response": {
            "$ref": "ListOperationsResponse"
          },
          "parameters": {
            "pageSize": {
              "format": "int32",
              "description": "The standard list page size.",
              "type": "integer",
              "location": "query"
            },
            "pageToken": {
              "description": "The standard list page token.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "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"
            },
            "filter": {
              "description": "The standard list filter.",
              "type": "string",
              "location": "query"
            },
            "name": {
              "required": true,
              "description": "The name of the operation's parent resource.",
              "type": "string",
              "pattern": "^operations$",
              "location": "path"
            }
          },
          "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
          "parameterOrder": [
            "name"
          ]
        },
        "delete": {
          "id": "adsdatahub.operations.delete",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/operations/{operationsId}",
          "path": "v1/{+name}",
          "httpMethod": "DELETE",
          "parameterOrder": [
            "name"
          ],
          "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`.",
          "parameters": {
            "name": {
              "description": "The name of the operation resource to be deleted.",
              "type": "string",
              "required": true,
              "pattern": "^operations/.*$",
              "location": "path"
            }
          }
        }
      }
    },
    "outages": {
      "methods": {
        "list": {
          "parameterOrder": [],
          "description": "Lists the outages in descending order of outage start timestamp, and the look back window is 130 days.",
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
              "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"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/outages",
          "path": "v1/outages",
          "httpMethod": "GET",
          "id": "adsdatahub.outages.list",
          "response": {
            "$ref": "ListOutagesResponse"
          }
        }
      }
    }
  },
  "schemas": {
    "ParameterType": {
      "id": "ParameterType",
      "description": "Information about a specific query parameter.",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "FieldType",
          "description": "Parameter field type."
        },
        "description": {
          "description": "Optional. Parameter description.",
          "type": "string"
        },
        "defaultValue": {
          "description": "Optional. Value that should be used if no parameter value is provided.",
          "$ref": "ParameterValue"
        }
      }
    },
    "GenerateFrequencyListMembershipsRequest": {
      "properties": {},
      "description": "Request to generate memberships for a frequency-based list.",
      "type": "object",
      "id": "GenerateFrequencyListMembershipsRequest"
    },
    "EventMatcherMetadata": {
      "properties": {
        "entity": {
          "$ref": "Entity",
          "description": "Linked entity from AdsDataLink."
        },
        "parentEventMatcher": {
          "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.",
          "$ref": "EventMatcher"
        },
        "displayName": {
          "description": "Name in the underlying data store for the constraint. This could be a campaign name, a line item name etc.",
          "type": "string"
        }
      },
      "id": "EventMatcherMetadata",
      "description": "Metadata for the event matcher.",
      "type": "object"
    },
    "ValidateCrmBasedUserListQueryResponse": {
      "properties": {
        "queryPerformanceInfo": {
          "description": "Returned if include_performance_info is true.",
          "$ref": "QueryPerformanceInfo"
        }
      },
      "description": "Response to a ValidateCrmBasedUserListQuery request.",
      "type": "object",
      "id": "ValidateCrmBasedUserListQueryResponse"
    },
    "OutputArtifacts": {
      "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.",
      "type": "object",
      "id": "OutputArtifacts",
      "properties": {
        "tempTables": {
          "items": {
            "$ref": "TempTable"
          },
          "description": "Defines list of temp tables created by an Ads Data Hub query.",
          "type": "array"
        }
      }
    },
    "FilteredRowSummary": {
      "properties": {
        "columns": {
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as SUMMARY_TYPE_UNSPECIFIED.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ColumnSummaryRule"
          }
        }
      },
      "description": "Merge instructions for an analysis query result schema.",
      "type": "object",
      "id": "FilteredRowSummary"
    },
    "SubmitBrandSafetyScoresMetadata": {
      "description": "Metadata for Brand Safety Scores submission request associated with each operation.",
      "type": "object",
      "id": "SubmitBrandSafetyScoresMetadata",
      "properties": {
        "endTime": {
          "format": "google-datetime",
          "description": "Import end time.",
          "type": "string"
        },
        "startTime": {
          "description": "Import start time.",
          "type": "string",
          "format": "google-datetime"
        },
        "request": {
          "$ref": "SubmitBrandSafetyScoresRequest",
          "description": "Request for Brand Safety Scores submission."
        }
      }
    },
    "Dv360Dimensions": {
      "properties": {
        "metricType": {
          "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"
          ],
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ]
        },
        "lineItemIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional DV360 line item ids. If empty, reports on all line items for the specified time period.",
          "type": "array"
        }
      },
      "description": "Filtering dimensions for DV360 platform.",
      "type": "object",
      "id": "Dv360Dimensions"
    },
    "QueryResponse": {
      "properties": {
        "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.",
          "type": "string",
          "format": "int64"
        },
        "userProvidedDataMatch": {
          "$ref": "UserProvidedDataMatch",
          "description": "Result of a user-provided data match."
        },
        "outputArtifacts": {
          "$ref": "OutputArtifacts",
          "description": "Output artifacts generated during query execution"
        },
        "destinationTables": {
          "items": {
            "$ref": "DestinationTableInfo"
          },
          "description": "List of output tables exported by the query.",
          "type": "array"
        },
        "privacyMessages": {
          "items": {
            "$ref": "PrivacyMessage"
          },
          "description": "List of privacy related information or warning messages.",
          "type": "array"
        }
      },
      "id": "QueryResponse",
      "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.",
      "type": "object"
    },
    "SubmitVendorReportIdMappingResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "id": "SubmitVendorReportIdMappingResponse",
      "properties": {}
    },
    "SubmitVendorAggregatesReportRequest": {
      "id": "SubmitVendorAggregatesReportRequest",
      "description": "Request to submit a Vendor Metric Summary report.",
      "type": "object",
      "properties": {
        "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 (either in vendor-wide time zone or per-row time zone) for the report.",
          "$ref": "Date"
        },
        "metric": {
          "description": "Required. Metric which the table is reporting.",
          "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."
          ]
        },
        "instance": {
          "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": "string"
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'.",
          "type": "string"
        }
      }
    },
    "Outage": {
      "description": "Defines an outage and its information.",
      "type": "object",
      "id": "Outage",
      "properties": {
        "name": {
          "description": "Name that uniquely identifies an outage. It has the form outages/[outage_id], e.g. 'outages/1234'.",
          "type": "string"
        },
        "startTime": {
          "description": "The absolute point in time when the outage started.",
          "type": "string",
          "format": "google-datetime"
        },
        "details": {
          "description": "Message describing this outage.",
          "type": "string"
        },
        "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)."
          ]
        },
        "endTime": {
          "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": "string"
        }
      }
    },
    "ListTempTablesResponse": {
      "properties": {
        "tables": {
          "items": {
            "$ref": "TempTable"
          },
          "description": "A list of tables.",
          "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": "ListTempTablesResponse",
      "description": "Response to a ListTempTables request.",
      "type": "object"
    },
    "Operation": {
      "properties": {
        "response": {
          "description": "A QueryResponse object, returned if the query operation is successful.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "name": {
          "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}`.",
          "type": "string"
        },
        "metadata": {
          "description": "A QueryMetadata object containing service-specific data associated with the operation.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "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"
        }
      },
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "id": "Operation"
    },
    "StartCrmBasedUserListReportRequest": {
      "id": "StartCrmBasedUserListReportRequest",
      "description": "Request to start execution on a stored CRM based user list report.",
      "type": "object",
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      }
    },
    "ExportBrandSafetyEntitiesResponse": {
      "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",
      "properties": {}
    },
    "ValidateUserListQueryRequest": {
      "properties": {
        "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"
        },
        "matchDataCustomerId": {
          "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.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "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"
        }
      },
      "description": "Request to validate a user list query.",
      "type": "object",
      "id": "ValidateUserListQueryRequest"
    },
    "ListUserListsResponse": {
      "id": "ListUserListsResponse",
      "description": "Response to a ListUserLists request. Contains the user lists managed by the specified Ads Data Hub customer.",
      "type": "object",
      "properties": {
        "userLists": {
          "items": {
            "$ref": "UserList"
          },
          "description": "A list of user lists.",
          "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"
        }
      }
    },
    "BatchApproveAdsDataLinksResponse": {
      "properties": {
        "links": {
          "items": {
            "$ref": "AdsDataLink"
          },
          "description": "Links updated.",
          "type": "array"
        }
      },
      "id": "BatchApproveAdsDataLinksResponse",
      "description": "Response to a BatchUpdateAdsDataLinks request.",
      "type": "object"
    },
    "ParameterValue": {
      "properties": {
        "arrayValue": {
          "description": "Value for an array parameter.",
          "$ref": "ArrayValue"
        },
        "structValue": {
          "description": "Value for a struct parameter.",
          "$ref": "StructValue"
        },
        "value": {
          "description": "Value for a non-array, non-struct parameter.",
          "type": "string"
        }
      },
      "description": "Represents a BigQuery parameter value.",
      "type": "object",
      "id": "ParameterValue"
    },
    "SubmitVendorReportIdMappingMetadata": {
      "id": "SubmitVendorReportIdMappingMetadata",
      "description": "Metadata for Customer Report ID Mapping submission request associated with each operation.",
      "type": "object",
      "properties": {
        "request": {
          "description": "Request for Report Id Mapping submission.",
          "$ref": "SubmitVendorReportIdMappingRequest"
        },
        "startTime": {
          "format": "google-datetime",
          "description": "Import start time.",
          "type": "string"
        },
        "endTime": {
          "description": "Import end time.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "Column": {
      "description": "Defines a Table column.",
      "type": "object",
      "id": "Column",
      "properties": {
        "columnId": {
          "description": "Column identifier.",
          "type": "string"
        },
        "columnType": {
          "$ref": "FieldType",
          "description": "Column type."
        }
      }
    },
    "SubmitBrandSafetyScoresRequest": {
      "description": "Request to submit a Vendor Brand Safety Scores file.",
      "type": "object",
      "id": "SubmitBrandSafetyScoresRequest",
      "properties": {
        "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": {
          "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.",
          "type": "string"
        },
        "date": {
          "$ref": "Date",
          "description": "Required. Date for the score file."
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'.",
          "type": "string"
        }
      }
    },
    "SubmitBrandLiftReportMetadata": {
      "description": "Metadata for customer brand lift report submission request associated with each operation.",
      "type": "object",
      "id": "SubmitBrandLiftReportMetadata",
      "properties": {
        "endTime": {
          "description": "Import end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "benchmark": {
          "description": "Request for brand lift quarter benchmark report submission.",
          "$ref": "SubmitBrandLiftBenchmarkRequest"
        },
        "studyReport": {
          "description": "Request for brand lift study report submission.",
          "$ref": "SubmitBrandLiftStudyReportRequest"
        },
        "startTime": {
          "format": "google-datetime",
          "description": "Import start time.",
          "type": "string"
        }
      }
    },
    "ListOutagesResponse": {
      "id": "ListOutagesResponse",
      "description": "Response to a ListOutages request, contains the outages.",
      "type": "object",
      "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": {
          "items": {
            "$ref": "Outage"
          },
          "description": "The outages within the look back window",
          "type": "array"
        }
      }
    },
    "ListAdsDataLinksResponse": {
      "id": "ListAdsDataLinksResponse",
      "description": "Response to a ListAdsDataLinks request.",
      "type": "object",
      "properties": {
        "links": {
          "description": "A list of ad data links.",
          "type": "array",
          "items": {
            "$ref": "AdsDataLink"
          }
        },
        "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"
        }
      }
    },
    "FieldType": {
      "id": "FieldType",
      "description": "Defines a BigQuery field type.",
      "type": "object",
      "properties": {
        "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"
        },
        "structType": {
          "$ref": "StructType",
          "description": "Struct field type, if this is a 'STRUCT' type."
        }
      }
    },
    "AdsDataLink": {
      "properties": {
        "name": {
          "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.",
          "type": "string"
        },
        "platform": {
          "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 associated with the linked entity.",
          "type": "string"
        },
        "updateTime": {
          "description": "Time the link status was last updated.",
          "type": "string",
          "format": "google-datetime"
        },
        "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"
        },
        "gmpExportScopes": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Unspecified scope.",
              "Should export Display & Video 360 YouTube TrueView data.",
              "Should export Data Transfer data."
            ],
            "enum": [
              "GMP_EXPORT_SCOPE_UNSPECIFIED",
              "GMP_EXPORT_SCOPE_YT_TRUEVIEW",
              "GMP_EXPORT_SCOPE_DT"
            ]
          },
          "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.",
          "type": "array"
        },
        "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"
          }
        },
        "vendorClientId": {
          "description": "Vendor client ID, if any.",
          "type": "string"
        },
        "metrics": {
          "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",
          "items": {
            "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."
            ],
            "type": "string"
          }
        },
        "createTime": {
          "description": "Time the link was created.",
          "type": "string",
          "format": "google-datetime"
        },
        "customerLink": {
          "description": "Customer link through which the linked data can be accessed. Only name, customer ID, and display_name are populated.",
          "$ref": "CustomerLink"
        },
        "status": {
          "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."
          ],
          "description": "Status of the data link.",
          "type": "string"
        },
        "linkedEntity": {
          "description": "Entity linked through this AdsDataLink.",
          "$ref": "Entity"
        }
      },
      "description": "Represents an advertising data link.",
      "type": "object",
      "id": "AdsDataLink"
    },
    "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",
      "type": "object",
      "id": "Date",
      "properties": {
        "day": {
          "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.",
          "type": "integer",
          "format": "int32"
        },
        "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"
        },
        "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"
        }
      }
    },
    "ListCustomerLinksResponse": {
      "description": "Response to a ListCustomerLinks request. Contains the Ads Data Hub customers linked to the specified customer.",
      "type": "object",
      "id": "ListCustomerLinksResponse",
      "properties": {
        "links": {
          "items": {
            "$ref": "CustomerLink"
          },
          "description": "A list of customer 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"
        }
      }
    },
    "DataAccessBudget": {
      "description": "Data access budget state per date.",
      "type": "object",
      "id": "DataAccessBudget",
      "properties": {
        "dataDayState": {
          "description": "Status of the budget by date.",
          "type": "array",
          "items": {
            "$ref": "DataDayState"
          }
        }
      }
    },
    "QueryShare": {
      "id": "QueryShare",
      "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
      "type": "object",
      "properties": {
        "shareType": {
          "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."
          ],
          "enum": [
            "SHARE_TYPE_UNSPECIFIED",
            "MANAGED_CUSTOMERS"
          ],
          "description": "Indicates how the query may be shared with other Ads Data Hub customers.",
          "type": "string"
        }
      }
    },
    "QueryMetadata": {
      "properties": {
        "startTime": {
          "format": "google-datetime",
          "description": "Query execution start time.",
          "type": "string"
        },
        "destTable": {
          "description": "Destination table for query results. Used for analysis queries.",
          "type": "string"
        },
        "matchDataCustomerId": {
          "description": "Ads Data Hub customer ID used for match table data.",
          "type": "string",
          "format": "int64"
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Ads Data Hub customer ID used for ads data.",
          "type": "string"
        },
        "customerId": {
          "description": "The Ads Data Hub customer ID that executed the query.",
          "type": "string",
          "format": "int64"
        },
        "queryTitle": {
          "description": "Title of the query executed.",
          "type": "string"
        },
        "parameterValues": {
          "description": "Parameter values used in the query. Maps each argument name to its bound value.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        },
        "userListId": {
          "format": "int64",
          "description": "User list to populate with query results. Used for user list queries.",
          "type": "string"
        },
        "executionMode": {
          "enumDescriptions": [
            "Execution mode was not specified.",
            "Job was executed by a schedule.",
            "Job was executed manually by a user."
          ],
          "enum": [
            "EXECUTION_MODE_UNSPECIFIED",
            "SCHEDULED_EXECUTION",
            "MANUALLY_EXECUTED"
          ],
          "description": "How the job was executed (e.g. manually or by a schedule). Derived value.",
          "type": "string"
        },
        "queryResourceName": {
          "description": "Name of the query resource that was executed, e.g. customers/123/analysisQueries/abcd1234 Only present for stored query execution.",
          "type": "string"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Query execution end time.",
          "type": "string"
        },
        "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"
        }
      },
      "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.",
      "type": "object",
      "id": "QueryMetadata"
    },
    "Schedule": {
      "properties": {
        "timeZone": {
          "$ref": "TimeZone",
          "description": "Optional. If not specified, defaults to 'UTC'."
        },
        "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."
          ]
        },
        "name": {
          "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
          "type": "string",
          "readOnly": true
        },
        "cronExpression": {
          "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 * * *",
          "type": "string"
        }
      },
      "id": "Schedule",
      "description": "Schedule used to execute a query based on the given cron_expression.",
      "type": "object"
    },
    "ArrayValue": {
      "properties": {
        "values": {
          "items": {
            "$ref": "ParameterValue"
          },
          "description": "The array values.",
          "type": "array"
        }
      },
      "description": "Defines an array parameter value.",
      "type": "object",
      "id": "ArrayValue"
    },
    "ValidateUserListQueryResponse": {
      "properties": {
        "processedBytes": {
          "format": "int64",
          "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.",
          "deprecated": true,
          "type": "string"
        },
        "queryPerformanceInfo": {
          "description": "Returned if include_performance_info is true.",
          "$ref": "QueryPerformanceInfo"
        }
      },
      "id": "ValidateUserListQueryResponse",
      "description": "Response to a ValidateUserListQuery request.",
      "type": "object"
    },
    "ValidateCrmBasedUserListQueryRequest": {
      "properties": {
        "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": {
          "description": "Required. The query to validate.",
          "$ref": "CrmBasedUserListQuery"
        }
      },
      "id": "ValidateCrmBasedUserListQueryRequest",
      "description": "Request to validate a CRM based user list query.",
      "type": "object"
    },
    "SubmitBrandSafetyScoresResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "id": "SubmitBrandSafetyScoresResponse",
      "properties": {}
    },
    "SubmitVendorAggregatesReportResponse": {
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "id": "SubmitVendorAggregatesReportResponse",
      "properties": {}
    },
    "StartUserListQueryRequest": {
      "description": "Request to start execution on a stored user list query.",
      "type": "object",
      "id": "StartUserListQueryRequest",
      "properties": {
        "userListId": {
          "description": "Google Ads user list ID. Note that the user list must be managed by the Ads Data Hub customer executing the query.",
          "type": "string",
          "format": "int64"
        },
        "customerId": {
          "description": "Optional. Ads Data Hub customer executing the query. If not specified, defaults to the customer that owns the query.",
          "type": "string",
          "format": "int64"
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Defines the query execution parameters."
        }
      }
    },
    "ListTablesResponse": {
      "id": "ListTablesResponse",
      "description": "Response to a ListTables request. Contains the Ads Data Hub tables accessible by the customer.",
      "type": "object",
      "properties": {
        "tables": {
          "items": {
            "$ref": "Table"
          },
          "description": "A list of tables.",
          "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"
        }
      }
    },
    "ExportEventsRequest": {
      "id": "ExportEventsRequest",
      "description": "Request to export panelists event level data.",
      "type": "object",
      "properties": {
        "endDate": {
          "description": "Required. The end date (inclusive) for the export.",
          "$ref": "Date"
        },
        "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"
        },
        "timeZone": {
          "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'.",
          "type": "string"
        },
        "startDate": {
          "$ref": "Date",
          "description": "Required. The start date (inclusive) for the export."
        },
        "platform": {
          "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.",
          "type": "string"
        },
        "metric": {
          "description": "Required. Type of metric data to export. Supported metric types are: BRAND_LIFT, BRAND_SAFETY, and VIEWABILITY.",
          "type": "string",
          "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."
          ],
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ]
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Required. Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string"
        }
      }
    },
    "StartTransientAnalysisQueryRequest": {
      "properties": {
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Defines the query execution parameters."
        },
        "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"
        }
      },
      "description": "Request to start execution of a transient analysis query.",
      "type": "object",
      "id": "StartTransientAnalysisQueryRequest"
    },
    "GenerateConsentInviteCodeResponse": {
      "properties": {
        "consentInviteCode": {
          "description": "Unique code for inviting panelist to give consent. Generation of this code is idempotent for a given panelist.",
          "type": "string"
        }
      },
      "description": "Response to a GenerateConsentInviteCode operation.",
      "type": "object",
      "id": "GenerateConsentInviteCodeResponse"
    },
    "FrequencyBasedListInfo": {
      "id": "FrequencyBasedListInfo",
      "description": "Metadata for frequency-based User List.",
      "type": "object",
      "properties": {
        "dv360LineitemIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Ids for DV360 line items that contribute to the frequency.",
          "deprecated": true,
          "type": "array"
        },
        "googleAdsCampaignIds": {
          "description": "Ids for Google Ads campaigns that contribute to the frequency.",
          "deprecated": true,
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "frequencyConstraint": {
          "description": "Describes when a user gets added to the list.",
          "$ref": "FrequencyConstraint"
        },
        "cmCampaignIds": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "description": "Ids for CM campaigns that contribute to the frequency.",
          "deprecated": true,
          "type": "array"
        },
        "slidingWindowDays": {
          "description": "Required. Time window size used when calculating the frequency of each event. This is measure in days",
          "type": "integer",
          "format": "int32"
        },
        "eventMatchers": {
          "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",
          "items": {
            "$ref": "EventMatcher"
          }
        }
      }
    },
    "CheckConsentResponse": {
      "properties": {
        "consent": {
          "description": "Details of the consent status of this panelist.",
          "$ref": "Consent"
        }
      },
      "id": "CheckConsentResponse",
      "description": "Response to a CheckConsentStatus operation.",
      "type": "object"
    },
    "TimeZone": {
      "id": "TimeZone",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "type": "object",
      "properties": {
        "id": {
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\".",
          "type": "string"
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        }
      }
    },
    "FrequencyConstraint": {
      "properties": {
        "eventType": {
          "description": "Immutable. The type of event that will be counted against threshold_event_count.",
          "type": "string",
          "enum": [
            "EVENT_TYPE_UNSPECIFIED",
            "IMPRESSIONS"
          ],
          "enumDescriptions": [
            "Default value: should not be used.",
            "Count all impressions."
          ]
        },
        "thresholdEventCount": {
          "format": "int64",
          "description": "Required. Each user should appear in at least K events.",
          "type": "string"
        }
      },
      "id": "FrequencyConstraint",
      "description": "Specify the minimum number of events for the cap.",
      "type": "object"
    },
    "Entity": {
      "description": "Represents an advertising entity that can be linked to an Ads Data Hub customer.",
      "type": "object",
      "id": "Entity",
      "properties": {
        "displayName": {
          "description": "Entity display name.",
          "type": "string"
        },
        "entityId": {
          "description": "Entity ID. The value listed here is dependent on the entity type.",
          "type": "string",
          "format": "int64"
        },
        "type": {
          "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"
          ],
          "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."
          ],
          "description": "Type of linked entity.",
          "type": "string"
        }
      }
    },
    "ListUserListQueriesResponse": {
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer, sorted by title.",
      "type": "object",
      "id": "ListUserListQueriesResponse",
      "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": "UserListQuery"
          }
        }
      }
    },
    "BatchRejectAdsDataLinksRequest": {
      "properties": {
        "names": {
          "items": {
            "type": "string"
          },
          "description": "Required. The resource names of the links to reject. A maximum of 100 links can be rejected in a batch.",
          "type": "array"
        }
      },
      "description": "Request to batch reject ads data links.",
      "type": "object",
      "id": "BatchRejectAdsDataLinksRequest"
    },
    "BatchApproveAdsDataLinksRequest": {
      "description": "Request to batch approve ads data links.",
      "type": "object",
      "id": "BatchApproveAdsDataLinksRequest",
      "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"
        }
      }
    },
    "Empty": {
      "properties": {},
      "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",
      "id": "Empty"
    },
    "BatchRejectAdsDataLinksResponse": {
      "properties": {
        "links": {
          "description": "Links updated.",
          "type": "array",
          "items": {
            "$ref": "AdsDataLink"
          }
        }
      },
      "id": "BatchRejectAdsDataLinksResponse",
      "description": "Response to a BatchUpdateAdsDataLinks request.",
      "type": "object"
    },
    "StartAnalysisQueryRequest": {
      "id": "StartAnalysisQueryRequest",
      "description": "Request to start execution on a stored analysis query.",
      "type": "object",
      "properties": {
        "destTableParameters": {
          "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.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "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"
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Required. Defines the query execution parameters."
        },
        "customerId": {
          "format": "int64",
          "description": "Optional. Ads Data Hub customer executing the query. If not specified, defaults to the customer that owns the query.",
          "type": "string"
        }
      }
    },
    "YouTubeReserveDimensions": {
      "id": "YouTubeReserveDimensions",
      "description": "Filtering dimensions for YouTube Reserve platform.",
      "type": "object",
      "properties": {
        "orderIds": {
          "description": "Optional YouTube Reserve order ids. If empty, reports on all orders for the specified time period.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "metricType": {
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited.",
          "type": "string"
        }
      }
    },
    "SubmitVendorReportIdMappingRequest": {
      "properties": {
        "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": {
          "$ref": "Date",
          "description": "Required. Date that the daily report ID mapping is for."
        },
        "metric": {
          "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.",
          "type": "string"
        },
        "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"
        },
        "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"
        }
      },
      "id": "SubmitVendorReportIdMappingRequest",
      "description": "Request to submit a Customer Defined Report ID Mapping file.",
      "type": "object"
    },
    "MergeSpec": {
      "deprecated": true,
      "id": "MergeSpec",
      "description": "Merge instructions for an analysis query result schema.",
      "type": "object",
      "properties": {
        "columns": {
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as MERGE_TYPE_UNSPECIFIED.",
          "type": "object",
          "additionalProperties": {
            "$ref": "MergeColumn"
          }
        }
      }
    },
    "RemarketingListInfo": {
      "properties": {
        "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"
        },
        "populatingUserListQueries": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "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]",
          "type": "array"
        }
      },
      "id": "RemarketingListInfo",
      "description": "Metadata for remarketing lists.",
      "type": "object"
    },
    "SubmitVendorAggregatesReportMetadata": {
      "id": "SubmitVendorAggregatesReportMetadata",
      "description": "Metadata for Vendor Metric Summary report submission request associated with each operation.",
      "type": "object",
      "properties": {
        "endTime": {
          "format": "google-datetime",
          "description": "Import end time.",
          "type": "string"
        },
        "startTime": {
          "description": "Import start time.",
          "type": "string",
          "format": "google-datetime"
        },
        "request": {
          "$ref": "SubmitVendorAggregatesReportRequest",
          "description": "Request for Vendor Metric Summary report submission."
        }
      }
    },
    "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.",
          "type": "array",
          "items": {
            "$ref": "EventMatcher"
          }
        }
      },
      "id": "AddEventMatchersRequest",
      "description": "Request to add a constraint to a frequency-based user list.",
      "type": "object"
    },
    "RemoveRecipientsRequest": {
      "properties": {
        "recipientAdsDataLinks": {
          "items": {
            "type": "string"
          },
          "description": "Remove linked entities from the specified user_list’s recipients. customers/[customer_id]/adsDataLinks/[resource_id]",
          "type": "array"
        }
      },
      "id": "RemoveRecipientsRequest",
      "description": "Request to remove recipients for a UserList.",
      "type": "object"
    },
    "MergeColumn": {
      "deprecated": true,
      "id": "MergeColumn",
      "properties": {
        "type": {
          "enum": [
            "MERGE_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ],
          "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."
          ],
          "description": "Method used to combine the values for the column.",
          "type": "string"
        },
        "value": {
          "$ref": "ParameterValue",
          "description": "The constant value to use (only valid for CONSTANT merge type)."
        }
      },
      "description": "Merge instructions for a single output column.",
      "type": "object"
    },
    "ExportBrandSafetyEntitiesRequest": {
      "id": "ExportBrandSafetyEntitiesRequest",
      "description": "Request to start execution of a Brand Safety entity export.",
      "type": "object",
      "properties": {
        "platform": {
          "description": "Advertising platform associate with the request.",
          "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."
          ]
        },
        "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."
        },
        "name": {
          "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "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"
        },
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string"
        },
        "includeGvp": {
          "description": "Will include any exportable GVP traffic when set to `true`.",
          "type": "boolean"
        }
      }
    },
    "StartAnalysisReportRequest": {
      "id": "StartAnalysisReportRequest",
      "description": "Request to start execution on a stored analysis report.",
      "type": "object",
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      }
    },
    "StructType": {
      "properties": {
        "fields": {
          "description": "An ordered list of fields for a given struct.",
          "type": "array",
          "items": {
            "$ref": "StructField"
          }
        }
      },
      "description": "Defines a struct type.",
      "type": "object",
      "id": "StructType"
    },
    "EventMatcherInfo": {
      "properties": {
        "eventMatcher": {
          "description": "Event matcher containing the constraint type and valid constraint ID.",
          "$ref": "EventMatcher"
        },
        "eventMatcherMetadata": {
          "$ref": "EventMatcherMetadata",
          "description": "Metadata for the event matcher."
        }
      },
      "id": "EventMatcherInfo",
      "description": "Event matcher along with its metadata.",
      "type": "object"
    },
    "Table": {
      "description": "Defines a table that can be queried.",
      "type": "object",
      "id": "Table",
      "properties": {
        "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"
        },
        "columns": {
          "items": {
            "$ref": "Column"
          },
          "description": "A list of table columns.",
          "type": "array"
        }
      }
    },
    "Customer": {
      "id": "Customer",
      "description": "An Ads Data Hub customer.",
      "type": "object",
      "properties": {
        "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"
        },
        "customerId": {
          "format": "int64",
          "description": "Ads Data Hub customer ID.",
          "type": "string"
        }
      }
    },
    "UserProvidedDataMatch": {
      "description": "Metadata of a user-provided data match.",
      "type": "object",
      "id": "UserProvidedDataMatch",
      "properties": {
        "matchCountEstimate": {
          "format": "int64",
          "description": "An approximate count of the users matched in the user provided data.",
          "type": "string"
        }
      }
    },
    "ColumnInfo": {
      "properties": {
        "noiseImpact": {
          "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.",
          "type": "string"
        },
        "name": {
          "description": "The column name",
          "type": "string"
        },
        "impactPercentage": {
          "format": "float",
          "description": "If applicable, the share this column contributes to the noise impact.",
          "type": "number"
        }
      },
      "id": "ColumnInfo",
      "description": "Metadata of a destination table column.",
      "type": "object"
    },
    "GoogleAdsDimensions": {
      "id": "GoogleAdsDimensions",
      "description": "Filtering dimensions for Google Ads platform.",
      "type": "object",
      "properties": {
        "metricType": {
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited.",
          "type": "string"
        },
        "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"
        }
      }
    },
    "QueryPerformanceInfo": {
      "properties": {
        "processedMb": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "zeroMb": {
          "description": "True if the processed data is 0 bytes.",
          "type": "boolean"
        },
        "lessThanOneMb": {
          "description": "True if the processed data is less than 1 MiB.",
          "type": "boolean"
        }
      },
      "description": "Performance info for the query execution.",
      "type": "object",
      "id": "QueryPerformanceInfo"
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "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.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        }
      }
    },
    "ExportEventsResponse": {
      "properties": {},
      "id": "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"
    },
    "CustomerLink": {
      "properties": {
        "updateTime": {
          "format": "google-datetime",
          "description": "Time the link status was last updated.",
          "type": "string"
        },
        "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."
          ]
        },
        "customerId": {
          "description": "Linked Ads Data Hub customer ID.",
          "type": "string",
          "format": "int64"
        },
        "accessTypes": {
          "description": "Access types that are exposed through this link.",
          "type": "array",
          "items": {
            "enum": [
              "ACCESS_TYPE_UNSPECIFIED",
              "ADS_DATA",
              "MATCH_DATA",
              "MANAGEMENT",
              "AUDIENCE_LIST"
            ],
            "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."
            ],
            "type": "string"
          }
        },
        "displayName": {
          "description": "Linked customer's display name.",
          "type": "string"
        },
        "directParentCustomerIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "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.",
          "type": "array"
        },
        "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"
        }
      },
      "id": "CustomerLink",
      "description": "Represents a link between two Ads Data Hub customers.",
      "type": "object"
    },
    "CheckConsentRequest": {
      "description": "Request to check the consent status of a panelist.",
      "type": "object",
      "id": "CheckConsentRequest",
      "properties": {
        "consentType": {
          "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": "Consent type for which to check this panelist's status.",
          "type": "string"
        }
      }
    },
    "JobHistoryExportResponse": {
      "properties": {
        "jobCount": {
          "format": "int64",
          "description": "Job count in the final output table.",
          "type": "string"
        },
        "destDataset": {
          "description": "Destination BigQuery dataset for the job history export.",
          "type": "string"
        },
        "destProject": {
          "description": "Destination BigQuery project for the job history export.",
          "type": "string"
        },
        "destTable": {
          "description": "Destination BigQuery table for the job history export.",
          "type": "string"
        }
      },
      "id": "JobHistoryExportResponse",
      "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.",
      "type": "object"
    },
    "DescribeValidFrequencyLimitingEventMatchersResponse": {
      "properties": {
        "eventMatcherInfos": {
          "description": "List of units, each containing an event matcher along with its metadata",
          "type": "array",
          "items": {
            "$ref": "EventMatcherInfo"
          }
        },
        "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"
        }
      },
      "description": "Response to a DescribeValidFrequencyLimitingEventMatchersRequest request.",
      "type": "object",
      "id": "DescribeValidFrequencyLimitingEventMatchersResponse"
    },
    "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"
        }
      }
    },
    "ValidateAnalysisQueryRequest": {
      "properties": {
        "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"
        },
        "spec": {
          "description": "Optional. The duplicated fields inside query_execution_spec will override the fields outside.",
          "$ref": "QueryExecutionSpec"
        },
        "matchDataCustomerId": {
          "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.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "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.",
          "deprecated": true,
          "type": "string"
        }
      },
      "description": "Request to validate an analysis query.",
      "type": "object",
      "id": "ValidateAnalysisQueryRequest"
    },
    "SubmitBrandLiftStudyReportRequest": {
      "id": "SubmitBrandLiftStudyReportRequest",
      "description": "Request to submit a customer generated brand lift study report.",
      "type": "object",
      "properties": {
        "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": {
          "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.",
          "type": "string"
        },
        "date": {
          "description": "Required. Date that the study report is for.",
          "$ref": "Date"
        },
        "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"
        }
      }
    },
    "ExportEventsMetadata": {
      "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.",
      "type": "object",
      "id": "ExportEventsMetadata",
      "properties": {
        "startTime": {
          "description": "Export start time.",
          "type": "string",
          "format": "google-datetime"
        },
        "request": {
          "$ref": "ExportEventsRequest",
          "description": "Request for exporting panelists event level data."
        },
        "endTime": {
          "description": "Export end time.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "DestinationTableInfo": {
      "properties": {
        "tablePath": {
          "description": "Table path in the customer BigQuery project.",
          "type": "string"
        },
        "columns": {
          "items": {
            "$ref": "ColumnInfo"
          },
          "description": "Information about columns in result",
          "type": "array"
        },
        "impactPercentage": {
          "format": "float",
          "description": "If applicable, the percent of cells in this table which are not greatly affected by noise.",
          "type": "number"
        },
        "rowCount": {
          "description": "Number of rows in the result.",
          "type": "string",
          "format": "int64"
        },
        "noiseImpact": {
          "description": "The noise impact message for this table.",
          "type": "string",
          "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."
          ],
          "enum": [
            "TABLE_NOISE_IMPACT_UNSPECIFIED",
            "NOT_NOISED",
            "LOW_IMPACT",
            "HIGH_IMPACT",
            "LOW_MEDIUM_IMPACT",
            "MEDIUM_IMPACT",
            "VERY_HIGH_IMPACT"
          ]
        }
      },
      "id": "DestinationTableInfo",
      "description": "Metadata of an exported query output table.",
      "type": "object"
    },
    "UserListQuery": {
      "properties": {
        "createTime": {
          "description": "Output only. Immutable. Time the query was created.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "userList": {
          "description": "Output only. The Ads Data Hub user list resource that can be populated by this user list query.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "updateEmail": {
          "readOnly": true,
          "description": "Output only. Email address of user who last updated the query.",
          "type": "string"
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "parameterTypes": {
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        },
        "queryText": {
          "description": "Query text.",
          "type": "string"
        },
        "queryState": {
          "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.",
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "description": "Output only. Time the query was last updated.",
          "type": "string",
          "format": "google-datetime"
        },
        "queryShare": {
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
          "type": "array",
          "items": {
            "$ref": "QueryShare"
          }
        },
        "createEmail": {
          "readOnly": true,
          "description": "Output only. Immutable. Email address of user who created the query.",
          "type": "string"
        },
        "name": {
          "readOnly": 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"
        }
      },
      "id": "UserListQuery",
      "description": "Defines a user list query that can be executed within Ads Data Hub.",
      "type": "object"
    },
    "Status": {
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        },
        "message": {
          "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.",
          "type": "string"
        }
      },
      "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).",
      "type": "object",
      "id": "Status"
    },
    "ListAnalysisQueriesResponse": {
      "properties": {
        "queries": {
          "description": "A list of queries.",
          "type": "array",
          "items": {
            "$ref": "AnalysisQuery"
          }
        },
        "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"
        }
      },
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer.",
      "type": "object",
      "id": "ListAnalysisQueriesResponse"
    },
    "JobHistoryExportMetadata": {
      "properties": {
        "timeRangeStartTime": {
          "format": "google-datetime",
          "description": "Starting time range for jobs included in this export, inclusive.",
          "type": "string"
        },
        "destDataset": {
          "description": "Destination BigQuery dataset ID.",
          "type": "string"
        },
        "destProject": {
          "description": "Destination BigQuery project ID.",
          "type": "string"
        },
        "exportStartTime": {
          "description": "Time this job history export began.",
          "type": "string",
          "format": "google-datetime"
        },
        "exportEndTime": {
          "description": "Time this job history export ended.",
          "type": "string",
          "format": "google-datetime"
        },
        "timeRangeEndTime": {
          "description": "Ending time range for jobs included in this export, exclusive.",
          "type": "string",
          "format": "google-datetime"
        },
        "customerId": {
          "format": "int64",
          "description": "The Ads Data Hub customer ID that ran the query.",
          "type": "string"
        }
      },
      "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.",
      "type": "object",
      "id": "JobHistoryExportMetadata"
    },
    "Consent": {
      "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."
          ],
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "description": "Type of this consent.",
          "type": "string"
        },
        "acceptTime": {
          "format": "google-datetime",
          "description": "Time at which the panelist first accepted an invitation to give consent.",
          "type": "string"
        }
      },
      "id": "Consent",
      "description": "Represents a panelist’s consent for a particular consent use case.",
      "type": "object"
    },
    "ListAdsDataCustomersResponse": {
      "id": "ListAdsDataCustomersResponse",
      "description": "Response to a ListAdsDataCustomersRequest request. Contains the ads data customers accessible by the customer.",
      "type": "object",
      "properties": {
        "adsDataCustomers": {
          "description": "A list of ads data customers.",
          "type": "array",
          "items": {
            "$ref": "AdsDataCustomer"
          }
        },
        "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"
        }
      }
    },
    "CreateTempMatchedEventDataMetadata": {
      "properties": {
        "request": {
          "description": "Request for creating panelist matched event data.",
          "$ref": "CreateTempMatchedEventDataRequest"
        }
      },
      "id": "CreateTempMatchedEventDataMetadata",
      "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.",
      "type": "object"
    },
    "ImportCompletionStatus": {
      "properties": {
        "name": {
          "description": "The name of the import completion status resource in the format of 'customers/{id}/importStatus/{date}_{utc_offset}'",
          "type": "string"
        },
        "percentile": {
          "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]."
          ],
          "enum": [
            "PERCENTILE_UNSPECIFIED",
            "LESS_THAN_95_PERCENT",
            "AT_LEAST_95_PERCENT",
            "AT_LEAST_99_PERCENT",
            "AT_LEAST_99_9_PERCENT"
          ],
          "description": "Percent of Google data being imported across all ADH customers for a given date that is complete.",
          "type": "string"
        }
      },
      "description": "Response to a GetImportCompletionStatus request.",
      "type": "object",
      "id": "ImportCompletionStatus"
    },
    "GenerateConsentInviteCodeRequest": {
      "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."
          ],
          "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 generate an invite code.",
          "type": "string"
        }
      },
      "description": "Request to generate a consent invite code for the specified panelist.",
      "type": "object",
      "id": "GenerateConsentInviteCodeRequest"
    },
    "DataDayState": {
      "id": "DataDayState",
      "description": "A record containing date and state of the budget for this date.",
      "type": "object",
      "properties": {
        "budgetState": {
          "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"
          ],
          "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."
          ]
        },
        "date": {
          "$ref": "Date",
          "description": "Date of the data day corresponding to this record."
        }
      }
    },
    "GenerateIvtReportRequest": {
      "properties": {
        "googleAdsDimensions": {
          "description": "Report on platform Google Ads.",
          "$ref": "GoogleAdsDimensions"
        },
        "adsDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string",
          "format": "int64"
        },
        "startDate": {
          "$ref": "Date",
          "description": "The first day of the generated report."
        },
        "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"
        },
        "timeZone": {
          "description": "Optional. The time zone for the report start and end dates. If not specified, defaults to 'UTC'.",
          "type": "string"
        },
        "dv360YoutubeDimensions": {
          "$ref": "Dv360Dimensions",
          "description": "Report on platform DV360."
        },
        "endDate": {
          "$ref": "Date",
          "description": "The last day of the generated report, inclusive."
        },
        "dateDimensionGranularity": {
          "description": "Optional. The granularity of the IVT report's date dimension. Defaults to DAY if UNSPECIFIED.",
          "type": "string",
          "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."
          ],
          "enum": [
            "DATE_DIMENSION_GRANULARITY_UNSPECIFIED",
            "DAY",
            "ENTIRE_DATE_RANGE"
          ]
        },
        "ytReserveDimensions": {
          "$ref": "YouTubeReserveDimensions",
          "description": "Report on platform YTR."
        }
      },
      "id": "GenerateIvtReportRequest",
      "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",
      "type": "object"
    },
    "StructValue": {
      "properties": {
        "values": {
          "description": "The struct field values keyed by field name.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        }
      },
      "id": "StructValue",
      "description": "Defines a struct parameter value.",
      "type": "object"
    },
    "Report": {
      "properties": {
        "adsDataCustomerId": {
          "description": "Optional. See ads.adsdatahub.v1.QueryExecutionSpec.ads_data_customer_id.",
          "type": "string",
          "format": "int64"
        },
        "matchDataCustomerId": {
          "format": "int64",
          "description": "Optional. See ads.adsdatahub.v1.report.match_data_customer_id.",
          "type": "string"
        },
        "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"
        },
        "destTableParameters": {
          "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",
          "additionalProperties": {
            "type": "string"
          }
        },
        "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"
        },
        "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"
        },
        "privacyMode": {
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ],
          "enumDescriptions": [
            "Unspecified mode. Not allowed for aggregation queries.",
            "Apply difference checks to query.",
            "Apply noise to query."
          ],
          "description": "Optional. Type of privacy protections to apply to query. See ads.adsdatahub.v1.QueryExecutionSpec.privacy_mode.",
          "type": "string"
        },
        "name": {
          "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
          "type": "string",
          "readOnly": true
        },
        "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"
        },
        "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"
          }
        },
        "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"
        }
      },
      "id": "Report",
      "description": "Report containing all the parameters required to execute a query. Next ID: 14",
      "type": "object"
    },
    "RevokeConsentRequest": {
      "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."
          ],
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "description": "Type of consent to revoke for this panelist.",
          "type": "string"
        }
      },
      "id": "RevokeConsentRequest",
      "description": "Request to revoke consent for a panelist.",
      "type": "object"
    },
    "SubmitBrandLiftBenchmarkRequest": {
      "properties": {
        "year": {
          "description": "Required. Year that the benchmark report is for. In the format of YYYY(e.g., 2023).",
          "type": "integer",
          "format": "int32"
        },
        "instance": {
          "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.",
          "type": "string"
        },
        "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"
        },
        "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.",
          "type": "integer",
          "format": "int32"
        },
        "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"
        }
      },
      "id": "SubmitBrandLiftBenchmarkRequest",
      "description": "Request to submit a customer generated brand lift quarter benchmark report.",
      "type": "object"
    },
    "StructField": {
      "id": "StructField",
      "description": "A key-value pair that defines a single struct field.",
      "type": "object",
      "properties": {
        "fieldName": {
          "description": "Field name.",
          "type": "string"
        },
        "fieldType": {
          "$ref": "FieldType",
          "description": "Field type."
        }
      }
    },
    "UserList": {
      "description": "Defines an Ads Data Hub-managed user list.",
      "type": "object",
      "id": "UserList",
      "properties": {
        "title": {
          "description": "Required. User list title, which is unique for the specified ads_data_customer_id.",
          "type": "string"
        },
        "populateTime": {
          "format": "google-datetime",
          "description": "Output only. Time the list was last populated.",
          "type": "string",
          "readOnly": true
        },
        "crmList": {
          "description": "Customer Matching user list.",
          "$ref": "CrmBasedListInfo"
        },
        "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"
          }
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "STATE_ACTIVE",
            "STATE_DELETED"
          ],
          "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"
          ],
          "readOnly": true,
          "description": "Output only. State of the user list (Active/Deleted). This value is Read Only and will accessible on get/list requests.",
          "type": "string"
        },
        "frequencyList": {
          "description": "User list for frequency capping.",
          "deprecated": true,
          "$ref": "FrequencyBasedListInfo"
        },
        "adsDataCustomerId": {
          "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.",
          "type": "string",
          "format": "int64"
        },
        "remarketingList": {
          "$ref": "RemarketingListInfo",
          "description": "Remarketing list."
        },
        "description": {
          "description": "Required. User list description.",
          "type": "string"
        },
        "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.",
          "type": "string",
          "readOnly": true,
          "enumDeprecated": [
            false,
            false,
            true,
            false
          ],
          "enum": [
            "USER_LIST_TYPE_UNSPECIFIED",
            "REMARKETING",
            "FREQUENCY_BASED",
            "CRM_BASED"
          ],
          "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."
          ]
        },
        "listSize": {
          "readOnly": true,
          "description": "Output only. The number of users on the user list. List size update may be delayed.",
          "type": "string",
          "format": "int64"
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of the user that created this user list.",
          "type": "string",
          "readOnly": true
        },
        "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]",
          "type": "string",
          "readOnly": true
        },
        "userListId": {
          "format": "int64",
          "description": "Output only. Immutable. User list ID. This field is generated by the service and is used to populate the UserList.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "CrmBasedUserListQuery": {
      "id": "CrmBasedUserListQuery",
      "description": "Defines a CRM based user list query that can be executed within Ads Data Hub.",
      "type": "object",
      "properties": {
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "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.",
          "type": "string"
        },
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        },
        "queryState": {
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ],
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ],
          "description": "Query state.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Time the query was last updated.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "queryShare": {
          "items": {
            "$ref": "QueryShare"
          },
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
          "type": "array"
        },
        "updateEmail": {
          "readOnly": true,
          "description": "Output only. Email address of user who last updated the query.",
          "type": "string"
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Immutable. Time the query was created.",
          "type": "string"
        },
        "userList": {
          "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",
          "readOnly": true
        }
      }
    },
    "GenerateDv360IvtVideoViewabilityReportRequest": {
      "properties": {
        "adsDataCustomerId": {
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string"
        },
        "lineItemIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Line item ids to report on.",
          "type": "array"
        },
        "startDate": {
          "$ref": "Date",
          "description": "The first day of the generated report."
        },
        "endDate": {
          "description": "The last day of the generated report, inclusive.",
          "$ref": "Date"
        },
        "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"
        },
        "timeZone": {
          "description": "The time zone for the report start and end dates. If not specified, defaults to 'UTC'.",
          "type": "string"
        }
      },
      "id": "GenerateDv360IvtVideoViewabilityReportRequest",
      "description": "Request to start the execution of a query to retrieve invalid traffic viewability metrics for the DV360 platform.",
      "type": "object"
    },
    "StartTransientUserListQueryRequest": {
      "id": "StartTransientUserListQueryRequest",
      "deprecated": true,
      "properties": {
        "spec": {
          "description": "Defines the query execution parameters.",
          "$ref": "QueryExecutionSpec"
        },
        "userListId": {
          "description": "Google Ads user list ID. Note that the user list must be managed by the Ads Data Hub customer executing the query.",
          "type": "string",
          "format": "int64"
        },
        "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.",
      "type": "object"
    },
    "UpdateCrmBasedUserListMembershipsRequest": {
      "id": "UpdateCrmBasedUserListMembershipsRequest",
      "description": "Request to update memberships for a CRM based list.",
      "type": "object",
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      }
    },
    "AnalysisQuery": {
      "properties": {
        "updateEmail": {
          "readOnly": true,
          "description": "Output only. Email address of user who last updated the query.",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. Immutable. Time the query was created.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "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",
          "readOnly": true
        },
        "createEmail": {
          "readOnly": true,
          "description": "Output only. Immutable. Email address of user who created the query.",
          "type": "string"
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "generateFilteredRowSummaryAutomatically": {
          "description": "If true, a filtered row summary is generated automatically.",
          "type": "boolean"
        },
        "mergeSpec": {
          "$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.",
          "deprecated": true
        },
        "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"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. Time the query was last updated.",
          "type": "string",
          "readOnly": true
        },
        "queryShare": {
          "items": {
            "$ref": "QueryShare"
          },
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
          "type": "array"
        },
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        },
        "queryState": {
          "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.",
          "type": "string"
        },
        "parameterTypes": {
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        }
      },
      "id": "AnalysisQuery",
      "description": "Defines an analysis query that can be executed within Ads Data Hub.",
      "type": "object"
    },
    "QueryExecutionSpec": {
      "properties": {
        "adsDataCustomerId": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "matchDataCustomerId": {
          "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.",
          "type": "string",
          "format": "int64"
        },
        "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": {
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ],
          "enumDescriptions": [
            "Unspecified mode. Not allowed for aggregation queries.",
            "Apply difference checks to query.",
            "Apply noise to query."
          ],
          "description": "Optional. Type of privacy protections to apply to query.",
          "type": "string"
        },
        "endDate": {
          "$ref": "Date",
          "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."
        },
        "parameterValues": {
          "description": "Any additional parameters expected by the query. Maps each parameter name to its bound value.",
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        },
        "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"
        }
      },
      "id": "QueryExecutionSpec",
      "description": "Defines the query execution parameters.",
      "type": "object"
    },
    "ExportBrandSafetyEntitiesMetadata": {
      "properties": {
        "request": {
          "$ref": "ExportBrandSafetyEntitiesRequest",
          "description": "Request for exporting brand safety entities."
        },
        "startTime": {
          "format": "google-datetime",
          "description": "Export start time.",
          "type": "string"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Export end time.",
          "type": "string"
        }
      },
      "id": "ExportBrandSafetyEntitiesMetadata",
      "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.",
      "type": "object"
    },
    "TempTable": {
      "id": "TempTable",
      "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.",
      "type": "object",
      "properties": {
        "queryType": {
          "enumDescriptions": [
            "No query type specified.",
            "An AnalysisQuery.",
            "A UserListQuery.",
            "A query triggered by a special endpoint."
          ],
          "enum": [
            "QUERY_TYPE_UNSPECIFIED",
            "ANALYSIS",
            "USER_LIST",
            "SPECIAL_ENDPOINT"
          ],
          "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"
        },
        "usableQueryTypes": {
          "items": {
            "enumDescriptions": [
              "No query type specified.",
              "An AnalysisQuery.",
              "A UserListQuery.",
              "A query triggered by a special endpoint."
            ],
            "enum": [
              "QUERY_TYPE_UNSPECIFIED",
              "ANALYSIS",
              "USER_LIST",
              "SPECIAL_ENDPOINT"
            ],
            "type": "string"
          },
          "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"
        },
        "name": {
          "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.",
          "type": "string"
        },
        "tablePath": {
          "description": "Fully qualified table path, e.g. 'tmp.table'",
          "type": "string"
        },
        "matchDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query.",
          "type": "string",
          "format": "int64"
        },
        "adsDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query.",
          "type": "string",
          "format": "int64"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Timestamp when the temp table is created, in micros.",
          "type": "string"
        },
        "operation": {
          "description": "Operation that created the temp table. It has the form operations/[jobId]",
          "type": "string"
        },
        "columns": {
          "items": {
            "$ref": "Column"
          },
          "description": "A list of table columns.",
          "type": "array"
        }
      }
    },
    "ColumnSummaryRule": {
      "properties": {
        "type": {
          "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."
          ],
          "enum": [
            "SUMMARY_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ],
          "description": "Method used to combine the values for the column.",
          "type": "string"
        },
        "value": {
          "description": "The constant value to use (only valid for CONSTANT summary type).",
          "$ref": "ParameterValue"
        }
      },
      "description": "Merge instructions for a single output column.",
      "type": "object",
      "id": "ColumnSummaryRule"
    },
    "ExportJobHistoryRequest": {
      "description": "Request to export job history.",
      "type": "object",
      "id": "ExportJobHistoryRequest",
      "properties": {
        "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"
        },
        "timeZone": {
          "description": "Optional. The time zone for the start date. If not specified, defaults to 'UTC'.",
          "type": "string"
        },
        "projectId": {
          "description": "Required. Customer project ID that the query audit log will be written to.",
          "type": "string"
        },
        "endDate": {
          "$ref": "Date",
          "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."
        },
        "dataset": {
          "description": "Required. Customer dataset that the query audit log will be written to.",
          "type": "string"
        }
      }
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "id": "CancelOperationRequest",
      "properties": {}
    },
    "ValidateAnalysisQueryResponse": {
      "properties": {
        "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.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "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/filtered-row-summary."
        },
        "warningsStatus": {
          "items": {
            "$ref": "Status"
          },
          "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.",
          "deprecated": true,
          "type": "array"
        },
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        },
        "status": {
          "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.",
          "type": "array",
          "items": {
            "$ref": "Status"
          }
        },
        "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"
          }
        }
      },
      "id": "ValidateAnalysisQueryResponse",
      "description": "Response to a ValidateAnalysisQuery request.",
      "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.",
      "type": "object",
      "id": "CreateTempMatchedEventDataResponse",
      "properties": {}
    },
    "EventMatcher": {
      "id": "EventMatcher",
      "description": "Generic event that contributes to the frequency.",
      "type": "object",
      "properties": {
        "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."
          ]
        },
        "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"
        }
      }
    },
    "ListCustomersResponse": {
      "description": "Response to a ListCustomers request. Contains the Ads Data Hub customers accessible by the current user.",
      "type": "object",
      "id": "ListCustomersResponse",
      "properties": {
        "customers": {
          "items": {
            "$ref": "Customer"
          },
          "description": "A list of customers.",
          "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"
        }
      }
    },
    "ListCrmBasedUserListQueriesResponse": {
      "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": {
          "items": {
            "$ref": "CrmBasedUserListQuery"
          },
          "description": "A list of queries.",
          "type": "array"
        }
      },
      "description": "Response to a ListCrmBasedUserListQueries request. Contains the queries owned by the specified customer, sorted by title.",
      "type": "object",
      "id": "ListCrmBasedUserListQueriesResponse"
    },
    "AddRecipientsRequest": {
      "description": "Request to add recipients to a UserList.",
      "type": "object",
      "id": "AddRecipientsRequest",
      "properties": {
        "recipientAdsDataLinks": {
          "items": {
            "type": "string"
          },
          "description": "Add these linked entities to the specified user_list’s recipients. eg. customers/[customer_id]/adsDataLinks/[resource_id]",
          "type": "array"
        }
      }
    },
    "CreateTempMatchedEventDataRequest": {
      "properties": {
        "startDate": {
          "$ref": "Date",
          "description": "The start date (inclusive) for creating panelist model training data."
        },
        "endDate": {
          "description": "The end date (inclusive) for creating panelist model training data.",
          "$ref": "Date"
        },
        "customer": {
          "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "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"
        },
        "timeZone": {
          "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": "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"
        }
      },
      "id": "CreateTempMatchedEventDataRequest",
      "description": "Request to create temp table with panelist matched event data.",
      "type": "object"
    },
    "CrmBasedListInfo": {
      "properties": {
        "crmBasedUserListQuery": {
          "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": "string"
        }
      },
      "description": "Metadata for CRM based lists.",
      "type": "object",
      "id": "CrmBasedListInfo"
    },
    "WaitOperationRequest": {
      "id": "WaitOperationRequest",
      "description": "The request message for Operations.WaitOperation.",
      "type": "object",
      "properties": {
        "timeout": {
          "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.",
          "type": "string",
          "format": "google-duration"
        }
      }
    },
    "PrivacyMessage": {
      "properties": {
        "type": {
          "description": "Type of the message.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "details": {
          "description": "Text of the message.",
          "type": "string"
        }
      },
      "description": "Privacy related information or warning message.",
      "type": "object",
      "id": "PrivacyMessage"
    },
    "StartRemarketingUserListReportRequest": {
      "id": "StartRemarketingUserListReportRequest",
      "description": "Request to start execution on a stored remarketing user list report.",
      "type": "object",
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      }
    },
    "SubmitBrandLiftReportResponse": {
      "properties": {},
      "id": "SubmitBrandLiftReportResponse",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object"
    }
  },
  "batchPath": "batch",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "callback": {
      "location": "query",
      "type": "string",
      "description": "JSONP"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "location": "query",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ]
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "alt": {
      "default": "json",
      "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"
      ],
      "location": "query",
      "type": "string",
      "description": "Data format for response."
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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"
    },
    "prettyPrint": {
      "location": "query",
      "default": "true",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks."
    },
    "quotaUser": {
      "location": "query",
      "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."
    }
  },
  "ownerName": "Google",
  "fullyEncodeReservedExpansion": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/adsdatahub": {
          "description": "Create, manage and execute Ads Data Hub custom queries"
        }
      }
    }
  },
  "version_module": true,
  "discoveryVersion": "v1",
  "protocol": "rest",
  "mtlsRootUrl": "https://adsdatahub.mtls.googleapis.com/",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "documentationLink": "https://developers.google.com/ads-data-hub/",
  "kind": "discovery#restDescription",
  "servicePath": "",
  "version": "v1",
  "canonicalName": "Ads Data Hub",
  "baseUrl": "https://adsdatahub.googleapis.com/",
  "description": "API for executing Ads Data Hub queries.",
  "rootUrl": "https://adsdatahub.googleapis.com/",
  "name": "adsdatahub",
  "title": "Ads Data Hub API",
  "revision": "20260402",
  "ownerDomain": "google.com",
  "id": "adsdatahub:v1",
  "basePath": ""
}
