{
  "version_module": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "resources": {
    "customers": {
      "methods": {
        "submitBrandSafetyScores": {
          "id": "adsdatahub.customers.submitBrandSafetyScores",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SubmitBrandSafetyScoresRequest"
          },
          "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.",
          "flatPath": "v1/customers/{customersId}:submitBrandSafetyScores",
          "path": "v1/{+customer}:submitBrandSafetyScores",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path"
            }
          },
          "parameterOrder": [
            "customer"
          ]
        },
        "exportJobHistory": {
          "description": "Exports job history of a customer account to customer-selected BigQuery dataset.",
          "flatPath": "v1/customers/{customersId}:exportJobHistory",
          "path": "v1/{+customer}:exportJobHistory",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "required": true,
              "description": "Required. ADH customer ID to fetch jobs for, with the format 'customers/123'.",
              "location": "path"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "id": "adsdatahub.customers.exportJobHistory",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "ExportJobHistoryRequest"
          }
        },
        "submitBrandLiftStudyReport": {
          "id": "adsdatahub.customers.submitBrandLiftStudyReport",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SubmitBrandLiftStudyReportRequest"
          },
          "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.",
          "flatPath": "v1/customers/{customersId}:submitBrandLiftStudyReport",
          "path": "v1/{+customer}:submitBrandLiftStudyReport",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "location": "path",
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "parameterOrder": [
            "customer"
          ]
        },
        "submitBrandLiftBenchmark": {
          "id": "adsdatahub.customers.submitBrandLiftBenchmark",
          "response": {
            "$ref": "Operation"
          },
          "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.",
          "flatPath": "v1/customers/{customersId}:submitBrandLiftBenchmark",
          "path": "v1/{+customer}:submitBrandLiftBenchmark",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "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'."
            }
          },
          "parameterOrder": [
            "customer"
          ]
        },
        "generateDv360IvtVideoViewabilityReport": {
          "flatPath": "v1/customers/{customersId}:generateDv360IvtVideoViewabilityReport",
          "description": "Starts the execution of a query to retrieve invalid traffic viewability metrics for the DV360 platform. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status.",
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "location": "path",
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "required": true,
              "type": "string",
              "pattern": "^customers/[^/]+$"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "path": "v1/{+customer}:generateDv360IvtVideoViewabilityReport",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "adsdatahub.customers.generateDv360IvtVideoViewabilityReport",
          "request": {
            "$ref": "GenerateDv360IvtVideoViewabilityReportRequest"
          }
        },
        "list": {
          "description": "Lists Ads Data Hub customers to which the current user has access.",
          "flatPath": "v1/customers",
          "path": "v1/customers",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "description": "Page token, returned by previous call, to request the next page of results, if any.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Maximum number of items to return. If 0, the server will determine the number of customers to return.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            }
          },
          "parameterOrder": [],
          "id": "adsdatahub.customers.list",
          "response": {
            "$ref": "ListCustomersResponse"
          }
        },
        "exportBrandSafetyEntities": {
          "httpMethod": "POST",
          "parameters": {
            "name": {
              "location": "path",
              "required": true,
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "path": "v1/{+name}:exportBrandSafetyEntities",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:exportBrandSafetyEntities",
          "description": "Starts execution of Brand Safety entity export.",
          "request": {
            "$ref": "ExportBrandSafetyEntitiesRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "adsdatahub.customers.exportBrandSafetyEntities"
        },
        "get": {
          "description": "Retrieves the requested Ads Data Hub customer.",
          "flatPath": "v1/customers/{customersId}",
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "required": true,
              "description": "Required. Full resource name, e.g. 'customers/123'.",
              "location": "path",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "path": "v1/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.customers.get",
          "response": {
            "$ref": "Customer"
          }
        },
        "generateIvtReport": {
          "path": "v1/{+name}:generateIvtReport",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "name": {
              "required": true,
              "description": "Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            }
          },
          "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/legacy-diff-checks#filtered_row_summary) (the row with no day) will contain the sum of redacted rows.",
          "flatPath": "v1/customers/{customersId}:generateIvtReport",
          "request": {
            "$ref": "GenerateIvtReportRequest"
          },
          "id": "adsdatahub.customers.generateIvtReport",
          "response": {
            "$ref": "Operation"
          }
        },
        "getImportCompletionStatus": {
          "id": "adsdatahub.customers.getImportCompletionStatus",
          "response": {
            "$ref": "ImportCompletionStatus"
          },
          "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%\".",
          "flatPath": "v1/customers/{customersId}/importCompletionStatus",
          "httpMethod": "GET",
          "parameters": {
            "date.month": {
              "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            },
            "date.day": {
              "location": "query",
              "type": "integer",
              "format": "int32",
              "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
            },
            "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'.",
              "location": "path",
              "pattern": "^customers/[^/]+$",
              "type": "string"
            },
            "date.year": {
              "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "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\".",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "path": "v1/{+customer}/importCompletionStatus",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ]
        },
        "describeValidFrequencyLimitingEventMatchers": {
          "httpMethod": "GET",
          "parameters": {
            "customer": {
              "type": "string",
              "pattern": "^customers/[^/]+$",
              "description": "Customer resource name, e.g. 'customers/123'.",
              "required": true,
              "location": "path"
            },
            "adsDataCustomerId": {
              "description": "Ads Data Owning customer's ID, e.g. 456.",
              "location": "query",
              "type": "string",
              "format": "int64"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "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"
            },
            "pageSize": {
              "location": "query",
              "type": "integer",
              "format": "int32",
              "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return."
            },
            "pageToken": {
              "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "path": "v1/{+customer}:describeValidFrequencyLimitingEventMatchers",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "flatPath": "v1/customers/{customersId}:describeValidFrequencyLimitingEventMatchers",
          "deprecated": true,
          "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.",
          "response": {
            "$ref": "DescribeValidFrequencyLimitingEventMatchersResponse"
          },
          "id": "adsdatahub.customers.describeValidFrequencyLimitingEventMatchers"
        },
        "submitVendorReportIdMapping": {
          "response": {
            "$ref": "Operation"
          },
          "id": "adsdatahub.customers.submitVendorReportIdMapping",
          "request": {
            "$ref": "SubmitVendorReportIdMappingRequest"
          },
          "flatPath": "v1/customers/{customersId}: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.",
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "location": "path",
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "required": true,
              "type": "string",
              "pattern": "^customers/[^/]+$"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "path": "v1/{+customer}:submitVendorReportIdMapping",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ]
        },
        "submitVendorAggregatesReport": {
          "request": {
            "$ref": "SubmitVendorAggregatesReportRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "adsdatahub.customers.submitVendorAggregatesReport",
          "path": "v1/{+customer}:submitVendorAggregatesReport",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "customer": {
              "pattern": "^customers/[^/]+$",
              "type": "string",
              "required": true,
              "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
              "location": "path"
            }
          },
          "parameterOrder": [
            "customer"
          ],
          "flatPath": "v1/customers/{customersId}:submitVendorAggregatesReport",
          "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."
        }
      },
      "resources": {
        "outboundCustomerLinks": {
          "methods": {
            "list": {
              "id": "adsdatahub.customers.outboundCustomerLinks.list",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              },
              "description": "Lists links where the specified customer has granted access to other Ads Data Hub customers. Only direct links are included.",
              "flatPath": "v1/customers/{customersId}/outboundCustomerLinks",
              "path": "v1/{+parent}/outboundCustomerLinks",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "location": "path",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "required": true
                },
                "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",
                  "location": "query",
                  "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"
                }
              },
              "parameterOrder": [
                "parent"
              ]
            }
          }
        },
        "tempTables": {
          "methods": {
            "list": {
              "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.",
              "flatPath": "v1/customers/{customersId}/tempTables",
              "httpMethod": "GET",
              "parameters": {
                "adsDataCustomerId": {
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "location": "query",
                  "type": "string",
                  "format": "int64"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'."
                },
                "queryType": {
                  "location": "query",
                  "description": "Type of query that created the tables. Temp tables are only accessible to to queries of the same type.",
                  "enum": [
                    "QUERY_TYPE_UNSPECIFIED",
                    "ANALYSIS",
                    "USER_LIST",
                    "SPECIAL_ENDPOINT"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "No query type specified.",
                    "An AnalysisQuery.",
                    "A UserListQuery.",
                    "A query triggered by a special endpoint."
                  ]
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any. The page token must have been returned by a call with the same request parameters.",
                  "location": "query",
                  "type": "string"
                },
                "matchDataCustomerId": {
                  "description": "Optional. Linked Ads Data Hub customer ID used when executing the original temp table queries. Defaults to the parent resource.",
                  "location": "query",
                  "type": "string",
                  "format": "int64"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables to return.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/tempTables",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.tempTables.list",
              "response": {
                "$ref": "ListTempTablesResponse"
              }
            },
            "get": {
              "response": {
                "$ref": "TempTable"
              },
              "id": "adsdatahub.customers.tempTables.get",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/resource-id'.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/tempTables/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/tempTables/{tempTablesId}",
              "description": "Retrieves the requested Ads Data Hub temp table."
            }
          }
        },
        "inboundCustomerLinks": {
          "methods": {
            "list": {
              "id": "adsdatahub.customers.inboundCustomerLinks.list",
              "response": {
                "$ref": "ListCustomerLinksResponse"
              },
              "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.",
              "flatPath": "v1/customers/{customersId}/inboundCustomerLinks",
              "httpMethod": "GET",
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return."
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "location": "path"
                },
                "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",
                  "location": "query",
                  "type": "string"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/inboundCustomerLinks",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            }
          }
        },
        "tables": {
          "methods": {
            "get": {
              "id": "adsdatahub.customers.tables.get",
              "response": {
                "$ref": "Table"
              },
              "description": "Retrieves the requested Ads Data Hub table.",
              "flatPath": "v1/customers/{customersId}/tables/{tablesId}",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "adsDataCustomerId": {
                  "location": "query",
                  "type": "string",
                  "format": "int64",
                  "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."
                },
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/123/tables/adh.google_ads_impressions.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/tables/[^/]+$"
                },
                "matchDataCustomerId": {
                  "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.",
                  "location": "query",
                  "type": "string",
                  "format": "int64"
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "response": {
                "$ref": "ListTablesResponse"
              },
              "id": "adsdatahub.customers.tables.list",
              "flatPath": "v1/customers/{customersId}/tables",
              "description": "Lists the Ads Data Hub tables to which the specified customer has access.",
              "path": "v1/{+parent}/tables",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "parent": {
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+$"
                },
                "adsDataCustomerId": {
                  "description": "Optional. Specific linked Ads Data Hub customer ID that owns the ads data used by the tables. Defaults to all the linked customers.",
                  "location": "query",
                  "type": "string",
                  "format": "int64"
                },
                "matchDataCustomerId": {
                  "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",
                  "format": "int64",
                  "location": "query"
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of tables to return."
                },
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "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."
                }
              },
              "parameterOrder": [
                "parent"
              ]
            }
          }
        },
        "panelists": {
          "methods": {
            "generateConsentInviteCode": {
              "response": {
                "$ref": "GenerateConsentInviteCodeResponse"
              },
              "id": "adsdatahub.customers.panelists.generateConsentInviteCode",
              "request": {
                "$ref": "GenerateConsentInviteCodeRequest"
              },
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:generateConsentInviteCode",
              "description": "Creates a consent invite code for the specified panelist. Creates the panelist if the panelist does not already exist. Users may employ any scheme for choosing unique integer panelist IDs, and are strongly encouraged to use a hashed or encrypted form of their own IDs.",
              "path": "v1/{+name}:generateConsentInviteCode",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "exportEvents": {
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.panelists.exportEvents",
              "request": {
                "$ref": "ExportEventsRequest"
              },
              "flatPath": "v1/customers/{customersId}/panelists:exportEvents",
              "description": "Exports panelists event level data.",
              "path": "v1/{+customer}/panelists:exportEvents",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "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'.",
                  "location": "path",
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "customer"
              ]
            },
            "revokeConsent": {
              "id": "adsdatahub.customers.panelists.revokeConsent",
              "response": {
                "$ref": "Empty"
              },
              "request": {
                "$ref": "RevokeConsentRequest"
              },
              "description": "Revokes one type of consent for a panelist.",
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:revokeConsent",
              "path": "v1/{+name}:revokeConsent",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/panelists/[^/]+$",
                  "location": "path",
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "checkConsent": {
              "flatPath": "v1/customers/{customersId}/panelists/{panelistsId}:checkConsent",
              "description": "Returns the time at which the panelist first granted the currently-open consent of the consentType indicated in the request. Returns NOT_FOUND if no such consent has ever been given, or if all such consents have been revoked.",
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "description": "Full resource name, e.g. 'customers/123/panelists/456'.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/panelists/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}:checkConsent",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "CheckConsentResponse"
              },
              "id": "adsdatahub.customers.panelists.checkConsent",
              "request": {
                "$ref": "CheckConsentRequest"
              }
            },
            "createTempMatchedEventData": {
              "flatPath": "v1/customers/{customersId}/panelists:createTempMatchedEventData",
              "description": "Creates temp table with panelist matched event data. The results will be written to the specified destination temp table.",
              "path": "v1/{+customer}/panelists:createTempMatchedEventData",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "customer": {
                  "type": "string",
                  "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'.",
                  "required": true
                }
              },
              "parameterOrder": [
                "customer"
              ],
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.panelists.createTempMatchedEventData",
              "request": {
                "$ref": "CreateTempMatchedEventDataRequest"
              }
            }
          }
        },
        "userLists": {
          "methods": {
            "addRecipients": {
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addRecipients",
              "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.",
              "httpMethod": "POST",
              "parameters": {
                "userList": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "location": "path",
                  "description": "Required. Full resource name of the user list to be updated. Has the form of customers/[customer_id]/userLists/[userlist_id]",
                  "required": true
                }
              },
              "parameterOrder": [
                "userList"
              ],
              "path": "v1/{+userList}:addRecipients",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "UserList"
              },
              "id": "adsdatahub.customers.userLists.addRecipients",
              "request": {
                "$ref": "AddRecipientsRequest"
              }
            },
            "addEventMatchers": {
              "id": "adsdatahub.customers.userLists.addEventMatchers",
              "response": {
                "$ref": "UserList"
              },
              "request": {
                "$ref": "AddEventMatchersRequest"
              },
              "deprecated": true,
              "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\".",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:addEventMatchers",
              "path": "v1/{+userList}:addEventMatchers",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "userList": {
                  "location": "path",
                  "description": "Required. Full resource name, has the form of ‘customers/[customer_id]/userLists/[userlist_id]’. UserList must have UserListType FREQUENCY_BASED.",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$"
                }
              },
              "parameterOrder": [
                "userList"
              ]
            },
            "delete": {
              "description": "Delete the requested Ads Data Hub-managed user list.",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "DELETE",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.userLists.delete",
              "response": {
                "$ref": "UserList"
              }
            },
            "removeRecipients": {
              "request": {
                "$ref": "RemoveRecipientsRequest"
              },
              "response": {
                "$ref": "UserList"
              },
              "id": "adsdatahub.customers.userLists.removeRecipients",
              "path": "v1/{+userList}:removeRecipients",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "userList": {
                  "description": "Required. Full resource name of the user list to be updated. Has the form of customers/[customer_id]/userLists/[userlist_id]",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$"
                }
              },
              "parameterOrder": [
                "userList"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:removeRecipients",
              "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."
            },
            "updateCrmBasedUserListMemberships": {
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:updateCrmBasedUserListMemberships",
              "description": "Update memberships for the UserList. The UserList must have UserListType CRM_BASED.",
              "path": "v1/{+name}:updateCrmBasedUserListMemberships",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType CRM_BASED.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.userLists.updateCrmBasedUserListMemberships",
              "request": {
                "$ref": "UpdateCrmBasedUserListMembershipsRequest"
              }
            },
            "list": {
              "path": "v1/{+parent}/userLists",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of user lists to return."
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "location": "query",
                  "type": "string"
                },
                "view": {
                  "location": "query",
                  "description": "Specifies which fields to include in each user list.",
                  "type": "string",
                  "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."
                  ]
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                },
                "filter": {
                  "type": "string",
                  "location": "query",
                  "description": "Example filter: title = \"user*\" AND title = \"*name*\" AND -type = FREQUENCY_BASED AND create_email = \"creator@email.com\" AND list_size \u003e 10 AND populate_time \u003e \"2012-04-21T11:30:00-04:00\""
                },
                "showDeleted": {
                  "location": "query",
                  "type": "boolean",
                  "description": "If set to true, deleted user lists will be included in the response."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists the user lists managed by the specified Ads Data Hub customer.",
              "flatPath": "v1/customers/{customersId}/userLists",
              "id": "adsdatahub.customers.userLists.list",
              "response": {
                "$ref": "ListUserListsResponse"
              }
            },
            "get": {
              "response": {
                "$ref": "UserList"
              },
              "id": "adsdatahub.customers.userLists.get",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/userLists/12345678.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "description": "Retrieves the requested Ads Data Hub-managed user list."
            },
            "patch": {
              "response": {
                "$ref": "UserList"
              },
              "id": "adsdatahub.customers.userLists.patch",
              "request": {
                "$ref": "UserList"
              },
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}",
              "description": "Updates the requested Ads Data Hub-managed user list.",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "PATCH",
              "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]",
                  "location": "path",
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string"
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "location": "query",
                  "description": "Required. Field mask to support partial updates. Only the following paths may be updated via the API: - title - description - recipient_ads_data_links"
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "generateFrequencyListMemberships": {
              "deprecated": true,
              "description": "Generate memberships for the UserList. The UserList must have UserListType FREQUENCY_BASED.",
              "flatPath": "v1/customers/{customersId}/userLists/{userListsId}:generateFrequencyListMemberships",
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userLists/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Full resource name, e.g. 'customers/123/userLists/12345678'. UserList must have UserListType FREQUENCY_BASED.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}:generateFrequencyListMemberships",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.userLists.generateFrequencyListMemberships",
              "response": {
                "$ref": "Operation"
              },
              "request": {
                "$ref": "GenerateFrequencyListMembershipsRequest"
              }
            },
            "create": {
              "request": {
                "$ref": "UserList"
              },
              "response": {
                "$ref": "UserList"
              },
              "id": "adsdatahub.customers.userLists.create",
              "path": "v1/{+parent}/userLists",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. The parent resource name that owns the user list, e.g. 'customers/123'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/customers/{customersId}/userLists",
              "description": "Creates an Ads Data Hub-managed user list."
            }
          }
        },
        "adsDataLinks": {
          "methods": {
            "list": {
              "response": {
                "$ref": "ListAdsDataLinksResponse"
              },
              "id": "adsdatahub.customers.adsDataLinks.list",
              "httpMethod": "GET",
              "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/1/adsDataLinks/CNC0w8IFEAEYAQ\" platform=\"GOOGLE_ADS\" status=\"PENDING\" create&lowbar;time.seconds\u003eunix_seconds update&lowbar;time.seconds\u003eunix_seconds vendor_client_id=\"vendor_customer\" metrics=\"VIEWABILITY\"",
                  "type": "string",
                  "location": "query"
                },
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path"
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, the server will determine the number of linked customers to return."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/adsDataLinks",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataLinks",
              "description": "Lists links between the specified customer and other Google advertising entities."
            },
            "batchApprove": {
              "id": "adsdatahub.customers.adsDataLinks.batchApprove",
              "response": {
                "$ref": "BatchApproveAdsDataLinksResponse"
              },
              "request": {
                "$ref": "BatchApproveAdsDataLinksRequest"
              },
              "description": "Approve a list of pending ads data links.",
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchApprove",
              "path": "v1/{+parent}/adsDataLinks:batchApprove",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to approve must be under this customer.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ]
            },
            "batchReject": {
              "request": {
                "$ref": "BatchRejectAdsDataLinksRequest"
              },
              "response": {
                "$ref": "BatchRejectAdsDataLinksResponse"
              },
              "id": "adsdatahub.customers.adsDataLinks.batchReject",
              "path": "v1/{+parent}/adsDataLinks:batchReject",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'. All links to reject must be under this customer."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataLinks:batchReject",
              "description": "Reject a list of pending ads data links."
            }
          }
        },
        "adsDataCustomers": {
          "methods": {
            "get": {
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/adsDataCustomers/456'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}",
              "description": "Retrieves the requested Ads Data Hub customer.",
              "response": {
                "$ref": "AdsDataCustomer"
              },
              "id": "adsdatahub.customers.adsDataCustomers.get"
            },
            "list": {
              "id": "adsdatahub.customers.adsDataCustomers.list",
              "response": {
                "$ref": "ListAdsDataCustomersResponse"
              },
              "description": "Lists ads data customers accessible from the customer.",
              "flatPath": "v1/customers/{customersId}/adsDataCustomers",
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by previous call, to request the next page of results, if any."
                },
                "pageSize": {
                  "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",
                  "location": "query"
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. The customer associated with these ads data customers. Format: customers/{customer}"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/adsDataCustomers",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "getDataAccessBudget": {
              "id": "adsdatahub.customers.adsDataCustomers.getDataAccessBudget",
              "response": {
                "$ref": "DataAccessBudget"
              },
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "Required. Name of the data access budget. Format: customers/{customer_id}/adsDataCustomers/{ads_data_customer_id}/dataAccessBudget e.g. 'customers/123/adsDataCustomers/456/dataAccessBudget'.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/adsDataCustomers/[^/]+/dataAccessBudget$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Retrieves the data access budget for the requested ads data source for the last 366 days.",
              "flatPath": "v1/customers/{customersId}/adsDataCustomers/{adsDataCustomersId}/dataAccessBudget"
            }
          }
        },
        "crmBasedUserListQueries": {
          "methods": {
            "delete": {
              "description": "Deletes a CRM based user list query.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "DELETE",
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. The full name of the CRM based user list query to delete. This is of the form 'customers/[customer_id]/crmBasedUserListQueries/[resource_id]', e.g. 'customers/123/crmBasedUserListQueries/resource123'.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.crmBasedUserListQueries.delete",
              "response": {
                "$ref": "Empty"
              }
            },
            "updateReport": {
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "description": "Updates CRM based user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "PATCH",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Report"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.updateReport",
              "request": {
                "$ref": "Report"
              }
            },
            "create": {
              "id": "adsdatahub.customers.crmBasedUserListQueries.create",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "request": {
                "$ref": "CrmBasedUserListQuery"
              },
              "description": "Creates a CRM based user list query for later execution. No query validation is performed at this time.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "parent"
              ]
            },
            "patch": {
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.patch",
              "request": {
                "$ref": "CrmBasedUserListQuery"
              },
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "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.",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "PATCH",
              "parameters": {
                "updateMask": {
                  "description": "Field mask used to support partial updates.",
                  "location": "query",
                  "type": "string",
                  "format": "google-fieldmask"
                },
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "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.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "validate": {
              "path": "v1/{+parent}/crmBasedUserListQueries:validate",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Performs static validation checks on the provided CRM based user list query to ensure valid output schema.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries:validate",
              "request": {
                "$ref": "ValidateCrmBasedUserListQueryRequest"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.validate",
              "response": {
                "$ref": "ValidateCrmBasedUserListQueryResponse"
              }
            },
            "list": {
              "path": "v1/{+parent}/crmBasedUserListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "filter": {
                  "description": "Filters your response. Works using the following fields / formatting: name=”customers/271828/crmBasedUserListQueries/pi314159265359” title=”up_and_right” query_text=\"SELECT LN(2.7182818284);\" query_state=\"RUNNABLE\" update_time\u003eunix_seconds update_email=”abc@gmail.com” create_time\u003eunix_seconds create_email=”abc@gmail.com”",
                  "location": "query",
                  "type": "string"
                },
                "pageToken": {
                  "description": "Page token, returned by a previous call, used to request the next page of results.",
                  "location": "query",
                  "type": "string"
                },
                "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"
                },
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists the CRM based user list queries owned by the specified customer.",
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries",
              "id": "adsdatahub.customers.crmBasedUserListQueries.list",
              "response": {
                "$ref": "ListCrmBasedUserListQueriesResponse"
              }
            },
            "get": {
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+$",
                  "location": "path",
                  "description": "Required. Full resource name, e.g. 'customers/123/crmBasedUserListQueries/abcd1234'.",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}",
              "description": "Retrieves the requested CRM based user list query.",
              "response": {
                "$ref": "CrmBasedUserListQuery"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.get"
            },
            "getReport": {
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report",
              "description": "Retrieves the requested CRM based user list report.",
              "response": {
                "$ref": "Report"
              },
              "id": "adsdatahub.customers.crmBasedUserListQueries.getReport"
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  },
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report/schedule'."
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "description": "Retrieves the requested CRM based user list schedule.",
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule"
                },
                "start": {
                  "request": {
                    "$ref": "StartCrmBasedUserListReportRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.start",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report$",
                      "location": "path",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/crmBasedUserListQueries/{query_id}/report'.",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report:start",
                  "description": "Starts execution on a stored CRM based user list report."
                },
                "updateSchedule": {
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "required": true,
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "location": "path",
                      "pattern": "^customers/[^/]+/crmBasedUserListQueries/[^/]+/report/schedule$",
                      "type": "string"
                    }
                  },
                  "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.",
                  "flatPath": "v1/customers/{customersId}/crmBasedUserListQueries/{crmBasedUserListQueriesId}/report/schedule",
                  "request": {
                    "$ref": "Schedule"
                  },
                  "id": "adsdatahub.customers.crmBasedUserListQueries.report.updateSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                }
              }
            }
          }
        },
        "userListQueries": {
          "methods": {
            "create": {
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/userListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "description": "Creates a user list query for later execution. No query validation is performed at this time.",
              "request": {
                "$ref": "UserListQuery"
              },
              "response": {
                "$ref": "UserListQuery"
              },
              "id": "adsdatahub.customers.userListQueries.create"
            },
            "patch": {
              "id": "adsdatahub.customers.userListQueries.patch",
              "response": {
                "$ref": "UserListQuery"
              },
              "request": {
                "$ref": "UserListQuery"
              },
              "description": "Updates an existing user list query. Partial updates are supported. Please review the UserListQuery resource to see which fields can be updated.",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "httpMethod": "PATCH",
              "parameters": {
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "location": "query",
                  "description": "Field mask used to support partial updates."
                },
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "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.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "validate": {
              "request": {
                "$ref": "ValidateUserListQueryRequest"
              },
              "id": "adsdatahub.customers.userListQueries.validate",
              "response": {
                "$ref": "ValidateUserListQueryResponse"
              },
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/userListQueries:validate",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "description": "Performs static validation checks on the provided user list query.",
              "flatPath": "v1/customers/{customersId}/userListQueries:validate"
            },
            "getReport": {
              "description": "Retrieves the requested remarketing user list report.",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "id": "adsdatahub.customers.userListQueries.getReport",
              "response": {
                "$ref": "Report"
              }
            },
            "start": {
              "path": "v1/{+name}:start",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}:start",
              "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.",
              "request": {
                "$ref": "StartUserListQueryRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.userListQueries.start"
            },
            "delete": {
              "response": {
                "$ref": "Empty"
              },
              "id": "adsdatahub.customers.userListQueries.delete",
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "description": "Deletes a user list query.",
              "httpMethod": "DELETE",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$",
                  "location": "path",
                  "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'.",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "startTransient": {
              "flatPath": "v1/customers/{customersId}/userListQueries:startTransient",
              "deprecated": true,
              "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.",
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/userListQueries:startTransient",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.userListQueries.startTransient",
              "request": {
                "$ref": "StartTransientUserListQueryRequest"
              }
            },
            "updateReport": {
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report",
              "description": "Updates remarketing user list report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "httpMethod": "PATCH",
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
                  "location": "path",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "response": {
                "$ref": "Report"
              },
              "id": "adsdatahub.customers.userListQueries.updateReport",
              "request": {
                "$ref": "Report"
              }
            },
            "get": {
              "response": {
                "$ref": "UserListQuery"
              },
              "id": "adsdatahub.customers.userListQueries.get",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "Required. Full resource name, e.g. 'customers/123/userListQueries/abcd1234'.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/userListQueries/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}",
              "description": "Retrieves the requested user list query."
            },
            "list": {
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Page token, returned by a previous call, used to request the next page of results."
                },
                "filter": {
                  "location": "query",
                  "type": "string",
                  "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”"
                },
                "parent": {
                  "description": "Parent customer resource name, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+$"
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/userListQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/userListQueries",
              "description": "Lists the user list queries owned by the specified customer.",
              "response": {
                "$ref": "ListUserListQueriesResponse"
              },
              "id": "adsdatahub.customers.userListQueries.list"
            }
          },
          "resources": {
            "report": {
              "methods": {
                "getSchedule": {
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report/schedule'.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Retrieves the requested remarketing user list schedule.",
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "id": "adsdatahub.customers.userListQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                },
                "start": {
                  "request": {
                    "$ref": "StartRemarketingUserListReportRequest"
                  },
                  "id": "adsdatahub.customers.userListQueries.report.start",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1/{+name}:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/userListQueries/{query_id}/report'.",
                      "required": true,
                      "type": "string",
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report$"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Starts execution on a stored remarketing user list report.",
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report:start"
                },
                "updateSchedule": {
                  "request": {
                    "$ref": "Schedule"
                  },
                  "response": {
                    "$ref": "Schedule"
                  },
                  "id": "adsdatahub.customers.userListQueries.report.updateSchedule",
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^customers/[^/]+/userListQueries/[^/]+/report/schedule$",
                      "location": "path",
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/customers/{customersId}/userListQueries/{userListQueriesId}/report/schedule",
                  "description": "Updates remarketing user list schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated."
                }
              }
            }
          }
        },
        "analysisQueries": {
          "methods": {
            "validate": {
              "flatPath": "v1/customers/{customersId}/analysisQueries:validate",
              "description": "Performs static validation checks on the provided analysis query.",
              "path": "v1/{+parent}/analysisQueries:validate",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "The parent resource name that owns the query, e.g. 'customers/123'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ValidateAnalysisQueryResponse"
              },
              "id": "adsdatahub.customers.analysisQueries.validate",
              "request": {
                "$ref": "ValidateAnalysisQueryRequest"
              }
            },
            "getReport": {
              "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "pattern": "^customers$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                  "location": "path"
                },
                "v1Id": {
                  "required": true,
                  "location": "path",
                  "type": "string"
                },
                "analysisQueriesId": {
                  "required": true,
                  "location": "path",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name",
                "v1Id",
                "analysisQueriesId"
              ],
              "description": "Retrieves the requested analysis report.",
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report",
              "id": "adsdatahub.customers.analysisQueries.getReport",
              "response": {
                "$ref": "Report"
              }
            },
            "create": {
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "type": "string",
                  "pattern": "^customers/[^/]+$",
                  "description": "Required. The parent resource name that owns the query, e.g. 'customers/123'.",
                  "required": true,
                  "location": "path"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/analysisQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries",
              "description": "Creates an analysis query for later execution. No query validation is performed at this time.",
              "request": {
                "$ref": "AnalysisQuery"
              },
              "response": {
                "$ref": "AnalysisQuery"
              },
              "id": "adsdatahub.customers.analysisQueries.create"
            },
            "patch": {
              "response": {
                "$ref": "AnalysisQuery"
              },
              "id": "adsdatahub.customers.analysisQueries.patch",
              "request": {
                "$ref": "AnalysisQuery"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "description": "Updates an existing analysis query. Partial updates are supported. Please review the AnalysisQuery resource to see which fields can be updated.",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "PATCH",
              "parameters": {
                "name": {
                  "location": "path",
                  "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.",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "type": "string"
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "location": "query",
                  "description": "Field mask used to support partial updates."
                }
              },
              "parameterOrder": [
                "name"
              ]
            },
            "get": {
              "description": "Retrieves the requested analysis query.",
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.analysisQueries.get",
              "response": {
                "$ref": "AnalysisQuery"
              }
            },
            "list": {
              "description": "Lists the analysis queries owned by the specified customer.",
              "flatPath": "v1/customers/{customersId}/analysisQueries",
              "httpMethod": "GET",
              "parameters": {
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "Filters your response. Works using the following fields / formatting: name=”customers/271828/analysisQueries/pi314159265359” title=”up_and_right” query_text=\"SELECT LN(2.7182818284);\" query_state=\"RUNNABLE\" update_time\u003eunix_seconds update_email=”abc@gmail.com” create_time\u003eunix_seconds create_email=”abc@gmail.com”"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Page token, returned by a previous call, used to request the next page of results, if any."
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "location": "query",
                  "description": "Maximum number of items to return. If 0, The server will determine the number of queries to return."
                },
                "parent": {
                  "pattern": "^customers/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Parent customer resource name, e.g. 'customers/123'."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/analysisQueries",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "id": "adsdatahub.customers.analysisQueries.list",
              "response": {
                "$ref": "ListAnalysisQueriesResponse"
              }
            },
            "start": {
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.analysisQueries.start",
              "request": {
                "$ref": "StartAnalysisQueryRequest"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}:start",
              "description": "Starts execution on a stored analysis query. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status.",
              "httpMethod": "POST",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Required. Full resource name, e.g. 'customers/123/analysisQueries/abcd1234'.",
                  "required": true,
                  "type": "string",
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}:start",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            },
            "delete": {
              "id": "adsdatahub.customers.analysisQueries.delete",
              "response": {
                "$ref": "Empty"
              },
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "httpMethod": "DELETE",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "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'."
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes an analysis query.",
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}"
            },
            "startTransient": {
              "request": {
                "$ref": "StartTransientAnalysisQueryRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "id": "adsdatahub.customers.analysisQueries.startTransient",
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "required": true,
                  "description": "Full resource name of the customer executing the query, e.g. 'customers/123'.",
                  "location": "path",
                  "pattern": "^customers/[^/]+$",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/analysisQueries:startTransient",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ],
              "flatPath": "v1/customers/{customersId}/analysisQueries:startTransient",
              "description": "Starts execution on a transient analysis query. The results will be written to the specified BigQuery destination table. The returned operation name can be used to poll for query completion status."
            },
            "updateReport": {
              "response": {
                "$ref": "Report"
              },
              "id": "adsdatahub.customers.analysisQueries.updateReport",
              "request": {
                "$ref": "Report"
              },
              "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report",
              "description": "Updates analysis report. Partial updates are supported. Please review the Report resource to see which fields can be updated.",
              "httpMethod": "PATCH",
              "parameters": {
                "name": {
                  "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/adsdatahub"
              ]
            }
          },
          "resources": {
            "report": {
              "methods": {
                "start": {
                  "path": "v1/{+name}:start",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report'.",
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report$",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report:start",
                  "description": "Starts execution on a stored analysis report.",
                  "request": {
                    "$ref": "StartAnalysisReportRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "adsdatahub.customers.analysisQueries.report.start"
                },
                "updateSchedule": {
                  "request": {
                    "$ref": "Schedule"
                  },
                  "response": {
                    "$ref": "Schedule"
                  },
                  "id": "adsdatahub.customers.analysisQueries.report.updateSchedule",
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^customers/[^/]+/analysisQueries/[^/]+/report/schedule$"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "description": "Updates analysis schedule. Partial updates are supported. Please review the Schedule resource to see which fields can be updated."
                },
                "getSchedule": {
                  "httpMethod": "GET",
                  "parameters": {
                    "v1Id": {
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "analysisQueriesId": {
                      "location": "path",
                      "type": "string",
                      "required": true
                    },
                    "name": {
                      "pattern": "^customers$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Full resource name, e.g. 'customers/{customer_id}/analysisQueries/{query_id}/report/schedule'."
                    }
                  },
                  "parameterOrder": [
                    "name",
                    "v1Id",
                    "analysisQueriesId"
                  ],
                  "path": "v1/{+name}/{v1Id}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "scopes": [
                    "https://www.googleapis.com/auth/adsdatahub"
                  ],
                  "description": "Retrieves the requested analysis schedule.",
                  "flatPath": "v1/customers/{customersId}/analysisQueries/{analysisQueriesId}/report/schedule",
                  "id": "adsdatahub.customers.analysisQueries.report.getSchedule",
                  "response": {
                    "$ref": "Schedule"
                  }
                }
              }
            }
          }
        }
      }
    },
    "outages": {
      "methods": {
        "list": {
          "description": "Lists the outages in descending order of outage start timestamp, and the look back window is 130 days.",
          "flatPath": "v1/outages",
          "httpMethod": "GET",
          "parameters": {
            "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"
            },
            "pageToken": {
              "description": "Page token, returned by a previous call, used to request the next page of results, if any.",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [],
          "path": "v1/outages",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "id": "adsdatahub.outages.list",
          "response": {
            "$ref": "ListOutagesResponse"
          }
        }
      }
    },
    "operations": {
      "methods": {
        "list": {
          "path": "v1/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "description": "The standard list page token.",
              "location": "query",
              "type": "string"
            },
            "name": {
              "type": "string",
              "pattern": "^operations$",
              "description": "The name of the operation's parent resource.",
              "required": true,
              "location": "path"
            },
            "pageSize": {
              "description": "The standard list page size.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "The standard list filter."
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "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."
            }
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
          "flatPath": "v1/operations",
          "id": "adsdatahub.operations.list",
          "response": {
            "$ref": "ListOperationsResponse"
          }
        },
        "get": {
          "id": "adsdatahub.operations.get",
          "response": {
            "$ref": "Operation"
          },
          "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.",
          "flatPath": "v1/operations/{operationsId}",
          "path": "v1/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "location": "path",
              "description": "The name of the operation resource.",
              "required": true,
              "type": "string",
              "pattern": "^operations/.*$"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "cancel": {
          "request": {
            "$ref": "CancelOperationRequest"
          },
          "response": {
            "$ref": "Empty"
          },
          "id": "adsdatahub.operations.cancel",
          "path": "v1/{+name}:cancel",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "httpMethod": "POST",
          "parameters": {
            "name": {
              "required": true,
              "description": "The name of the operation resource to be cancelled.",
              "location": "path",
              "pattern": "^operations/.*$",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "flatPath": "v1/operations/{operationsId}:cancel",
          "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`."
        },
        "wait": {
          "flatPath": "v1/operations/{operationsId}:wait",
          "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
          "httpMethod": "POST",
          "parameters": {
            "name": {
              "pattern": "^operations/.*$",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the operation resource to wait on."
            }
          },
          "parameterOrder": [
            "name"
          ],
          "path": "v1/{+name}:wait",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "adsdatahub.operations.wait",
          "request": {
            "$ref": "WaitOperationRequest"
          }
        },
        "delete": {
          "id": "adsdatahub.operations.delete",
          "response": {
            "$ref": "Empty"
          },
          "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`.",
          "flatPath": "v1/operations/{operationsId}",
          "httpMethod": "DELETE",
          "parameters": {
            "name": {
              "location": "path",
              "description": "The name of the operation resource to be deleted.",
              "required": true,
              "type": "string",
              "pattern": "^operations/.*$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "path": "v1/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/adsdatahub"
          ]
        }
      }
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/adsdatahub": {
          "description": "Create, manage and execute Ads Data Hub custom queries"
        }
      }
    }
  },
  "title": "Ads Data Hub API",
  "protocol": "rest",
  "ownerName": "Google",
  "kind": "discovery#restDescription",
  "schemas": {
    "CustomerLink": {
      "id": "CustomerLink",
      "description": "Represents a link between two Ads Data Hub customers.",
      "properties": {
        "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"
        },
        "status": {
          "type": "string",
          "enum": [
            "LINK_STATUS_UNSPECIFIED",
            "PENDING",
            "APPROVED",
            "REJECTED"
          ],
          "description": "Status of the customer link.",
          "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": {
          "type": "string",
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID."
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Time the link status was last updated."
        },
        "directParentCustomerIds": {
          "type": "array",
          "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."
        },
        "accessTypes": {
          "description": "Access types that are exposed through this link.",
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Unspecified access type.",
              "If this is an inbound link, the linked customer has provided access to their Ads Data Hub ads data and can be listed as an ads_data_customer_id during query execution. If this is an outbound link, the linked customer has access to the current customer's ads data.",
              "If this is an inbound link, the linked customer has provided access to their Ads Data Hub match table data and can be listed as a match_data_customer_id during query execution. If this is an outbound link, the linked customer has access to the current customer's match table data.",
              "Management links specify how link permissions propagate across customers. E.g., if A has an inbound management link to B and B has an inbound ads data link to C, then A has an indirect inbound ads data link to C. If A manages B and B manages C, then A will have inbound management links to both B and C, and C will have outbound management links to both A and B.",
              "If this is an inbound link, the linked customer has provided access to create audience on behalf of them. If this is an outbound link, the linked customer can create audience on behalf of the current customer."
            ],
            "enum": [
              "ACCESS_TYPE_UNSPECIFIED",
              "ADS_DATA",
              "MATCH_DATA",
              "MANAGEMENT",
              "AUDIENCE_LIST"
            ],
            "type": "string"
          }
        },
        "displayName": {
          "description": "Linked customer's display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StructField": {
      "type": "object",
      "properties": {
        "fieldName": {
          "description": "Field name.",
          "type": "string"
        },
        "fieldType": {
          "description": "Field type.",
          "$ref": "FieldType"
        }
      },
      "id": "StructField",
      "description": "A key-value pair that defines a single struct field."
    },
    "DestinationTableInfo": {
      "id": "DestinationTableInfo",
      "description": "Metadata of an exported query output table.",
      "type": "object",
      "properties": {
        "noiseImpact": {
          "enum": [
            "TABLE_NOISE_IMPACT_UNSPECIFIED",
            "NOT_NOISED",
            "LOW_IMPACT",
            "HIGH_IMPACT",
            "LOW_MEDIUM_IMPACT",
            "MEDIUM_IMPACT",
            "VERY_HIGH_IMPACT"
          ],
          "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."
          ],
          "description": "The noise impact message for this table."
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "ColumnInfo"
          },
          "description": "Information about columns in result"
        },
        "impactPercentage": {
          "type": "number",
          "format": "float",
          "description": "If applicable, the percent of cells in this table which are not greatly affected by noise."
        },
        "rowCount": {
          "description": "Number of rows in the result.",
          "type": "string",
          "format": "int64"
        },
        "tablePath": {
          "description": "Table path in the customer BigQuery project.",
          "type": "string"
        }
      }
    },
    "AdsDataCustomer": {
      "type": "object",
      "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"
        }
      },
      "id": "AdsDataCustomer",
      "description": "An Ads Data Hub customer."
    },
    "SubmitBrandSafetyScoresMetadata": {
      "id": "SubmitBrandSafetyScoresMetadata",
      "description": "Metadata for Brand Safety Scores submission request associated with each operation.",
      "type": "object",
      "properties": {
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Import end time."
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Import start time."
        },
        "request": {
          "$ref": "SubmitBrandSafetyScoresRequest",
          "description": "Request for Brand Safety Scores submission."
        }
      }
    },
    "StartRemarketingUserListReportRequest": {
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "StartRemarketingUserListReportRequest",
      "description": "Request to start execution on a stored remarketing user list report."
    },
    "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"
        }
      },
      "type": "object",
      "id": "CrmBasedListInfo",
      "description": "Metadata for CRM based lists."
    },
    "ListCustomerLinksResponse": {
      "id": "ListCustomerLinksResponse",
      "description": "Response to a ListCustomerLinks request. Contains the Ads Data Hub customers linked to the specified customer.",
      "type": "object",
      "properties": {
        "links": {
          "type": "array",
          "items": {
            "$ref": "CustomerLink"
          },
          "description": "A list of customer links."
        },
        "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"
        }
      }
    },
    "ExportJobHistoryRequest": {
      "properties": {
        "dataset": {
          "description": "Required. Customer dataset 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."
        },
        "startDate": {
          "$ref": "Date",
          "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."
        },
        "projectId": {
          "description": "Required. Customer project ID that the query audit log will be written to.",
          "type": "string"
        },
        "timeZone": {
          "description": "Optional. The time zone for the start date. If not specified, defaults to 'UTC'.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ExportJobHistoryRequest",
      "description": "Request to export job history."
    },
    "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": {
          "type": "array",
          "items": {
            "$ref": "UserList"
          },
          "description": "A list of user lists."
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      }
    },
    "CreateTempMatchedEventDataMetadata": {
      "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.",
      "properties": {
        "request": {
          "$ref": "CreateTempMatchedEventDataRequest",
          "description": "Request for creating panelist matched event data."
        }
      },
      "type": "object"
    },
    "ListUserListQueriesResponse": {
      "type": "object",
      "properties": {
        "queries": {
          "type": "array",
          "items": {
            "$ref": "UserListQuery"
          },
          "description": "A list of queries."
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "id": "ListUserListQueriesResponse",
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer, sorted by title."
    },
    "AddRecipientsRequest": {
      "type": "object",
      "properties": {
        "recipientAdsDataLinks": {
          "description": "Add these linked entities to the specified user_list’s recipients. eg. customers/[customer_id]/adsDataLinks/[resource_id]",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "AddRecipientsRequest",
      "description": "Request to add recipients to a UserList."
    },
    "EventMatcher": {
      "properties": {
        "value": {
          "description": "Value of the constraint. For example, for specifying a Google Ads campaign ID = 1234, match_type would be GOOGLE_ADS_CAMPAIGN_ID and value would be '1234'. Events that have this value for the respective MatchType will be included in the frequency count.",
          "type": "string"
        },
        "matchType": {
          "type": "string",
          "enum": [
            "MATCH_TYPE_UNSPECIFIED",
            "CM_CAMPAIGN_ID",
            "DV360_INSERTION_ORDER_ID",
            "DV360_LINE_ITEM_ID",
            "GOOGLE_ADS_CAMPAIGN_ID"
          ],
          "description": "The type of the constraint that will be included in the frequency count.",
          "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."
          ]
        }
      },
      "type": "object",
      "id": "EventMatcher",
      "description": "Generic event that contributes to the frequency."
    },
    "GenerateFrequencyListMembershipsRequest": {
      "properties": {},
      "type": "object",
      "id": "GenerateFrequencyListMembershipsRequest",
      "description": "Request to generate memberships for a frequency-based list."
    },
    "WaitOperationRequest": {
      "id": "WaitOperationRequest",
      "description": "The request message for Operations.WaitOperation.",
      "type": "object",
      "properties": {
        "timeout": {
          "type": "string",
          "format": "google-duration",
          "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used."
        }
      }
    },
    "ExportBrandSafetyEntitiesRequest": {
      "type": "object",
      "properties": {
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID that owns the ads data."
        },
        "platform": {
          "enumDescriptions": [
            "Unspecified platform.",
            "The entity is associated with Google Ads.",
            "The entity is associated with Google Marketing Platform.",
            "The entity is associated with YouTube Reserve.",
            "The entity is associated with Google Ad Manager.",
            "The entity is associated with FreeWheel."
          ],
          "description": "Advertising platform associate with the request.",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ],
          "type": "string"
        },
        "includeGvp": {
          "description": "Will include any exportable GVP traffic when set to `true`.",
          "type": "boolean"
        },
        "name": {
          "description": "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": "The date for brand safety entity exports. Any impressions that occurred on this date in timezone \"America/New_York\" will be provided."
        },
        "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"
        }
      },
      "id": "ExportBrandSafetyEntitiesRequest",
      "description": "Request to start execution of a Brand Safety entity export."
    },
    "QueryMetadata": {
      "properties": {
        "startTime": {
          "description": "Query execution start time.",
          "type": "string",
          "format": "google-datetime"
        },
        "queryResourceName": {
          "description": "Name of the query resource that was executed, e.g. customers/123/analysisQueries/abcd1234 Only present for stored query execution.",
          "type": "string"
        },
        "parameterValues": {
          "type": "object",
          "additionalProperties": {
            "$ref": "ParameterValue"
          },
          "description": "Parameter values used in the query. Maps each argument name to its bound value."
        },
        "customerId": {
          "type": "string",
          "format": "int64",
          "description": "The Ads Data Hub customer ID that executed the query."
        },
        "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"
        },
        "executionMode": {
          "type": "string",
          "enum": [
            "EXECUTION_MODE_UNSPECIFIED",
            "SCHEDULED_EXECUTION",
            "MANUALLY_EXECUTED"
          ],
          "description": "How the job was executed (e.g. manually or by a schedule). Derived value.",
          "enumDescriptions": [
            "Execution mode was not specified.",
            "Job was executed by a schedule.",
            "Job was executed manually by a user."
          ]
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Ads Data Hub customer ID used for ads data."
        },
        "endTime": {
          "description": "Query execution end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "queryTitle": {
          "description": "Title of the query executed.",
          "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"
        },
        "userListId": {
          "type": "string",
          "format": "int64",
          "description": "User list to populate with query results. Used for user list queries."
        }
      },
      "type": "object",
      "id": "QueryMetadata",
      "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."
    },
    "GoogleAdsDimensions": {
      "id": "GoogleAdsDimensions",
      "description": "Filtering dimensions for Google Ads platform.",
      "properties": {
        "campaignIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional Google Ads campaign ids. If empty, reports on all campaigns for the specified time period."
        },
        "metricType": {
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited."
        }
      },
      "type": "object"
    },
    "QueryResponse": {
      "properties": {
        "rowCount": {
          "type": "string",
          "format": "int64",
          "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."
        },
        "outputArtifacts": {
          "$ref": "OutputArtifacts",
          "description": "Output artifacts generated during query execution"
        },
        "destinationTables": {
          "description": "List of output tables exported by the query.",
          "type": "array",
          "items": {
            "$ref": "DestinationTableInfo"
          }
        },
        "privacyMessages": {
          "description": "List of privacy related information or warning messages.",
          "type": "array",
          "items": {
            "$ref": "PrivacyMessage"
          }
        },
        "userProvidedDataMatch": {
          "description": "Result of a user-provided data match.",
          "$ref": "UserProvidedDataMatch"
        }
      },
      "type": "object",
      "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."
    },
    "ListAdsDataCustomersResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "adsDataCustomers": {
          "description": "A list of ads data customers.",
          "type": "array",
          "items": {
            "$ref": "AdsDataCustomer"
          }
        }
      },
      "type": "object",
      "id": "ListAdsDataCustomersResponse",
      "description": "Response to a ListAdsDataCustomersRequest request. Contains the ads data customers accessible by the customer."
    },
    "BatchApproveAdsDataLinksResponse": {
      "type": "object",
      "properties": {
        "links": {
          "type": "array",
          "items": {
            "$ref": "AdsDataLink"
          },
          "description": "Links updated."
        }
      },
      "id": "BatchApproveAdsDataLinksResponse",
      "description": "Response to a BatchUpdateAdsDataLinks request."
    },
    "SubmitBrandLiftBenchmarkRequest": {
      "type": "object",
      "properties": {
        "year": {
          "type": "integer",
          "format": "int32",
          "description": "Required. Year that the benchmark report is for. In the format of YYYY(e.g., 2023)."
        },
        "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"
        },
        "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"
        },
        "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"
        },
        "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"
        }
      },
      "id": "SubmitBrandLiftBenchmarkRequest",
      "description": "Request to submit a customer generated brand lift quarter benchmark report."
    },
    "StartCrmBasedUserListReportRequest": {
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "StartCrmBasedUserListReportRequest",
      "description": "Request to start execution on a stored CRM based user list report."
    },
    "ExportEventsMetadata": {
      "id": "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",
      "properties": {
        "endTime": {
          "description": "Export end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "request": {
          "description": "Request for exporting panelists event level data.",
          "$ref": "ExportEventsRequest"
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Export start time."
        }
      }
    },
    "ValidateCrmBasedUserListQueryRequest": {
      "properties": {
        "query": {
          "description": "Required. The query to validate.",
          "$ref": "CrmBasedUserListQuery"
        },
        "includePerformanceInfo": {
          "description": "Optional. If true, call BigQuery to dry run the query to collect some performance info. It may take longer compared to only validating the query. The start_date, end_date and parameters inside query_execution_spec need to be set for the dry run.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "ValidateCrmBasedUserListQueryRequest",
      "description": "Request to validate a CRM based user list query."
    },
    "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"
        },
        "reportType": {
          "enumDescriptions": [
            "Default value.",
            "For Conversion Attribution only. This is the conversion based table for conversion attribution."
          ],
          "description": "Optional. Type of report being submitted for the given metric. For metrics that don't support multiple report types, this field should not be set. For conversion attribution, default report type is impression based report.",
          "enum": [
            "REPORT_TYPE_UNSPECIFIED",
            "CONVERSION_BASED_REPORT"
          ],
          "type": "string"
        },
        "metric": {
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ],
          "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."
          ],
          "description": "Required. Metric which the table is reporting."
        },
        "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"
        },
        "date": {
          "description": "Required. Date (either in vendor-wide time zone or per-row time zone) for the report.",
          "$ref": "Date"
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'.",
          "type": "string"
        }
      }
    },
    "ExportBrandSafetyEntitiesMetadata": {
      "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",
      "properties": {
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Export end time."
        },
        "request": {
          "$ref": "ExportBrandSafetyEntitiesRequest",
          "description": "Request for exporting brand safety entities."
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Export start time."
        }
      }
    },
    "ValidateUserListQueryResponse": {
      "id": "ValidateUserListQueryResponse",
      "description": "Response to a ValidateUserListQuery request.",
      "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"
        },
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        }
      },
      "type": "object"
    },
    "ListCustomersResponse": {
      "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"
        },
        "customers": {
          "description": "A list of customers.",
          "type": "array",
          "items": {
            "$ref": "Customer"
          }
        }
      },
      "type": "object",
      "id": "ListCustomersResponse",
      "description": "Response to a ListCustomers request. Contains the Ads Data Hub customers accessible by the current user."
    },
    "ListOutagesResponse": {
      "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": {
          "type": "array",
          "items": {
            "$ref": "Outage"
          },
          "description": "The outages within the look back window"
        }
      },
      "id": "ListOutagesResponse",
      "description": "Response to a ListOutages request, contains the outages."
    },
    "QueryShare": {
      "properties": {
        "shareType": {
          "type": "string",
          "enum": [
            "SHARE_TYPE_UNSPECIFIED",
            "MANAGED_CUSTOMERS"
          ],
          "description": "Indicates how the query may be shared with other Ads Data Hub customers.",
          "enumDescriptions": [
            "Query sharing type is unspecified.",
            "Query can be run from an Ads Data Hub customer that owns the query, or any Ads Data Hub customer managed by that customer."
          ]
        }
      },
      "type": "object",
      "id": "QueryShare",
      "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer."
    },
    "SubmitVendorAggregatesReportMetadata": {
      "properties": {
        "request": {
          "$ref": "SubmitVendorAggregatesReportRequest",
          "description": "Request for Vendor Metric Summary report submission."
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Import start time."
        },
        "endTime": {
          "description": "Import end time.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "type": "object",
      "id": "SubmitVendorAggregatesReportMetadata",
      "description": "Metadata for Vendor Metric Summary report submission request associated with each operation."
    },
    "Report": {
      "id": "Report",
      "description": "Report containing all the parameters required to execute a query. Next ID: 14",
      "properties": {
        "startDateOffset": {
          "type": "string",
          "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."
        },
        "endDateOffset": {
          "description": "The end date offset (inclusive) for the query execution. See ads.adsdatahub.v1.QueryExecutionSpec.end_date. The absolute end_date is computed by subtracting this offset from the current date.",
          "type": "string",
          "format": "google-duration"
        },
        "timeZone": {
          "$ref": "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'."
        },
        "parameterValues": {
          "type": "object",
          "description": "Optional. Any additional parameters expected by the query. Maps each parameter name to its bound value. See ads.adsdatahub.v1.QueryExecutionSpec.parameter_values.",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        },
        "matchDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. See ads.adsdatahub.v1.report.match_data_customer_id."
        },
        "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"
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. See ads.adsdatahub.v1.QueryExecutionSpec.ads_data_customer_id."
        },
        "privacyMode": {
          "description": "Optional. Type of privacy protections to apply to query. See ads.adsdatahub.v1.QueryExecutionSpec.privacy_mode.",
          "enumDescriptions": [
            "Unspecified mode. Not allowed for aggregation queries.",
            "Apply difference checks to query.",
            "Apply noise to query."
          ],
          "type": "string",
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ]
        },
        "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",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "name": {
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies a report. Format: customers/{customer_id}/analysisQueries/{query_id}/report",
          "readOnly": true
        },
        "userListId": {
          "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",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "FrequencyBasedListInfo": {
      "id": "FrequencyBasedListInfo",
      "description": "Metadata for frequency-based User List.",
      "type": "object",
      "properties": {
        "dv360LineitemIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Ids for DV360 line items that contribute to the frequency.",
          "deprecated": true
        },
        "googleAdsCampaignIds": {
          "description": "Ids for Google Ads campaigns that contribute to the frequency.",
          "deprecated": true,
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "eventMatchers": {
          "type": "array",
          "items": {
            "$ref": "EventMatcher"
          },
          "description": "Which events contribute to the frequency. When creating frequency-based user lists, eventMatchers is preferred for specifying events contributing to the frequency. dv360LineitemIds, cmCampaignIds, and googleAdsCampaignIds are used if eventMatchers is empty."
        },
        "slidingWindowDays": {
          "type": "integer",
          "format": "int32",
          "description": "Required. Time window size used when calculating the frequency of each event. This is measure in days"
        },
        "cmCampaignIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Ids for CM campaigns that contribute to the frequency.",
          "deprecated": true
        },
        "frequencyConstraint": {
          "description": "Describes when a user gets added to the list.",
          "$ref": "FrequencyConstraint"
        }
      }
    },
    "ExportEventsResponse": {
      "type": "object",
      "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."
    },
    "ListTablesResponse": {
      "id": "ListTablesResponse",
      "description": "Response to a ListTables request. Contains the Ads Data Hub tables accessible by the customer.",
      "properties": {
        "tables": {
          "description": "A list of tables.",
          "type": "array",
          "items": {
            "$ref": "Table"
          }
        },
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StructValue": {
      "type": "object",
      "properties": {
        "values": {
          "type": "object",
          "description": "The struct field values keyed by field name.",
          "additionalProperties": {
            "$ref": "ParameterValue"
          }
        }
      },
      "id": "StructValue",
      "description": "Defines a struct parameter value."
    },
    "AnalysisQuery": {
      "id": "AnalysisQuery",
      "description": "Defines an analysis query that can be executed within Ads Data Hub.",
      "type": "object",
      "properties": {
        "parameterTypes": {
          "type": "object",
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        },
        "updateEmail": {
          "description": "Output only. Email address of user who last updated the query.",
          "readOnly": true,
          "type": "string"
        },
        "generateFilteredRowSummaryAutomatically": {
          "description": "If true, a filtered row summary is generated automatically.",
          "type": "boolean"
        },
        "createTime": {
          "description": "Output only. Immutable. Time the query was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "name": {
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies a query. It has the form customers/[customer_id]/analysisQueries/[resource_id], e.g. 'customers/123/analysisQueries/abcd1234'. The resource ID is generated by the server.",
          "readOnly": true
        },
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        },
        "queryShare": {
          "type": "array",
          "items": {
            "$ref": "QueryShare"
          },
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer."
        },
        "filteredRowSummary": {
          "$ref": "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."
        },
        "queryState": {
          "description": "Query state.",
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ],
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ]
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "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
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Time the query was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "MergeSpec": {
      "id": "MergeSpec",
      "deprecated": true,
      "description": "Merge instructions for an analysis query result schema.",
      "type": "object",
      "properties": {
        "columns": {
          "type": "object",
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as MERGE_TYPE_UNSPECIFIED.",
          "additionalProperties": {
            "$ref": "MergeColumn"
          }
        }
      }
    },
    "QueryExecutionSpec": {
      "properties": {
        "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."
        },
        "matchDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Linked Ads Data Hub customer ID that owns the match data for the query. If absent, then the query will be run using the match data owned by the Ads Data Hub customer ID running the query, if applicable."
        },
        "parameterValues": {
          "type": "object",
          "description": "Any additional parameters expected by the query. Maps each parameter name to its bound value.",
          "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"
        },
        "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": {
          "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.",
          "enum": [
            "QUERY_PRIVACY_MODE_UNSPECIFIED",
            "DIFFERENCE_CHECKS",
            "NOISE"
          ],
          "type": "string"
        },
        "startDate": {
          "$ref": "Date",
          "description": "The start date (inclusive) for the query. Reserved keyword: A user-defined parameter with this name will be ignored and replaced with the values from the QueryExecutionSpec."
        },
        "adsDataCustomerId": {
          "type": "string",
          "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": "object",
      "id": "QueryExecutionSpec",
      "description": "Defines the query execution parameters."
    },
    "QueryPerformanceInfo": {
      "type": "object",
      "properties": {
        "processedMb": {
          "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",
          "format": "int64"
        },
        "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"
        }
      },
      "id": "QueryPerformanceInfo",
      "description": "Performance info for the query execution."
    },
    "StartAnalysisQueryRequest": {
      "id": "StartAnalysisQueryRequest",
      "description": "Request to start execution on a stored analysis query.",
      "type": "object",
      "properties": {
        "destTable": {
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        },
        "destTableParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Additional destination table parameters to be referenced in the query. Keys are names referenced in SQL as 'params.name', and values are BigQuery table paths with the same format and requirements as dest_table.",
          "type": "object"
        },
        "spec": {
          "description": "Required. Defines the query execution parameters.",
          "$ref": "QueryExecutionSpec"
        },
        "customerId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Ads Data Hub customer executing the query. If not specified, defaults to the customer that owns the query."
        }
      }
    },
    "UserProvidedDataMatch": {
      "type": "object",
      "properties": {
        "matchCountEstimate": {
          "type": "string",
          "format": "int64",
          "description": "An approximate count of the users matched in the user provided data."
        }
      },
      "id": "UserProvidedDataMatch",
      "description": "Metadata of a user-provided data match."
    },
    "Entity": {
      "properties": {
        "entityId": {
          "description": "Entity ID. The value listed here is dependent on the entity type.",
          "type": "string",
          "format": "int64"
        },
        "displayName": {
          "description": "Entity display name.",
          "type": "string"
        },
        "type": {
          "description": "Type of linked entity.",
          "enumDescriptions": [
            "Unspecified entity type.",
            "A Google Ads customer. The entity_id corresponds to [`Customer.id`](https://developers.google.com/google-ads/api/reference/rpc/v11/Customer#id)",
            "A Google Ads campaign. The entity_id corresponds to [`Campaign.id`](https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign#id) in the Google Ads API.",
            "A Campaign Manager 360 account. The entity_id corresponds to [`Accounts.id`](https://developers.google.com/doubleclick-advertisers/rest/v4/accounts) in the Campaign Manager 360 API.",
            "A Campaign Manager 360 floodlight account. The entity_id corresponds to [`FloodlightConfigurations.accountId`](https://developers.google.com/doubleclick-advertisers/rest/v4/floodlightConfigurations) in the Campaign Manager 360 API.",
            "A Display & Video 360 partner ID. The entity_id is a Display & Video 360 partner ID.",
            "A Display & Video 360 advertiser ID. The entity_id is a Display & Video 360 advertiser ID.",
            "A Display & Video 360 order ID. The entity_id is a Display & Video 360 order ID.",
            "A Display & Video 360 line item ID. The entity_id is a Display & Video 360 line item ID.",
            "A YouTube Reserve order ID. The entity_id corresponds to [`Order.id`](https://developers.google.com/ad-manager/api/reference/v201902/OrderService.Order#id) in the Google Ad Manager API.",
            "A YouTube Reserve line item. The entity_id corresponds to [`LineItem.id`](https://developers.google.com/ad-manager/api/reference/v201902/LineItemService.LineItem#id) in the Google Ad Manager API.",
            "A Vendor Client ID that is manually registered by a third-party ad tech vendor to provide third-party measurements.",
            "A Google Ad Manager order ID. The entity_id corresponds to [`Order.id`](https://developers.google.com/ad-manager/api/reference/v201902/OrderService.Order#id) in the Google Ad Manager API.",
            "A Google Ad Manager line item. The entity_id corresponds to [`LineItem.id`](https://developers.google.com/ad-manager/api/reference/v201902/LineItemService.LineItem#id) in the Google Ad Manager API."
          ],
          "type": "string",
          "enum": [
            "ENTITY_TYPE_UNSPECIFIED",
            "GOOGLE_ADS_CUSTOMER",
            "GOOGLE_ADS_CAMPAIGN",
            "GMP_CM_ACCOUNT",
            "GMP_CM_FLOODLIGHT",
            "GMP_DV360_PARTNER",
            "GMP_DV360_ADVERTISER",
            "GMP_DV360_ORDER",
            "GMP_DV360_LINE_ITEM",
            "YT_RESERVE_ORDER",
            "YT_RESERVE_LINE_ITEM",
            "VENDOR_CLIENT_ID_REGISTRATION",
            "GOOGLE_AD_MANAGER_ORDER",
            "GOOGLE_AD_MANAGER_LINE_ITEM"
          ]
        }
      },
      "type": "object",
      "id": "Entity",
      "description": "Represents an advertising entity that can be linked to an Ads Data Hub customer."
    },
    "ExportBrandSafetyEntitiesResponse": {
      "properties": {},
      "type": "object",
      "id": "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."
    },
    "ImportCompletionStatus": {
      "id": "ImportCompletionStatus",
      "description": "Response to a GetImportCompletionStatus request.",
      "type": "object",
      "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]."
          ],
          "description": "Percent of Google data being imported across all ADH customers for a given date that is complete.",
          "enum": [
            "PERCENTILE_UNSPECIFIED",
            "LESS_THAN_95_PERCENT",
            "AT_LEAST_95_PERCENT",
            "AT_LEAST_99_PERCENT",
            "AT_LEAST_99_9_PERCENT"
          ],
          "type": "string"
        }
      }
    },
    "MergeColumn": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "MERGE_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ],
          "type": "string",
          "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."
        },
        "value": {
          "$ref": "ParameterValue",
          "description": "The constant value to use (only valid for CONSTANT merge type)."
        }
      },
      "id": "MergeColumn",
      "deprecated": true,
      "description": "Merge instructions for a single output column."
    },
    "FrequencyConstraint": {
      "type": "object",
      "properties": {
        "eventType": {
          "enumDescriptions": [
            "Default value: should not be used.",
            "Count all impressions."
          ],
          "description": "Immutable. The type of event that will be counted against threshold_event_count.",
          "enum": [
            "EVENT_TYPE_UNSPECIFIED",
            "IMPRESSIONS"
          ],
          "type": "string"
        },
        "thresholdEventCount": {
          "type": "string",
          "format": "int64",
          "description": "Required. Each user should appear in at least K events."
        }
      },
      "id": "FrequencyConstraint",
      "description": "Specify the minimum number of events for the cap."
    },
    "JobHistoryExportMetadata": {
      "id": "JobHistoryExportMetadata",
      "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",
      "properties": {
        "timeRangeStartTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Starting time range for jobs included in this export, inclusive."
        },
        "exportStartTime": {
          "description": "Time this job history export began.",
          "type": "string",
          "format": "google-datetime"
        },
        "customerId": {
          "type": "string",
          "format": "int64",
          "description": "The Ads Data Hub customer ID that ran the query."
        },
        "exportEndTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Time this job history export ended."
        },
        "destDataset": {
          "description": "Destination BigQuery dataset ID.",
          "type": "string"
        },
        "destProject": {
          "description": "Destination BigQuery project ID.",
          "type": "string"
        },
        "timeRangeEndTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Ending time range for jobs included in this export, exclusive."
        }
      }
    },
    "Date": {
      "type": "object",
      "properties": {
        "month": {
          "type": "integer",
          "format": "int32",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day."
        },
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "type": "integer",
          "format": "int32"
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
        }
      },
      "id": "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"
    },
    "UserListQuery": {
      "type": "object",
      "properties": {
        "queryShare": {
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer.",
          "type": "array",
          "items": {
            "$ref": "QueryShare"
          }
        },
        "createEmail": {
          "type": "string",
          "description": "Output only. Immutable. Email address of user who created the query.",
          "readOnly": true
        },
        "updateTime": {
          "description": "Output only. Time the query was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "parameterTypes": {
          "type": "object",
          "description": "Any additional parameters expected by the query. Maps each argument name to its argument type.",
          "additionalProperties": {
            "$ref": "ParameterType"
          }
        },
        "updateEmail": {
          "type": "string",
          "description": "Output only. Email address of user who last updated the query.",
          "readOnly": true
        },
        "queryState": {
          "description": "Query state.",
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ],
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ]
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Immutable. Time the query was created.",
          "readOnly": true
        },
        "name": {
          "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.",
          "readOnly": true,
          "type": "string"
        },
        "userList": {
          "description": "Output only. The Ads Data Hub user list resource that can be populated by this user list query.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "queryText": {
          "description": "Query text.",
          "type": "string"
        }
      },
      "id": "UserListQuery",
      "description": "Defines a user list query that can be executed within Ads Data Hub."
    },
    "SubmitBrandLiftReportResponse": {
      "id": "SubmitBrandLiftReportResponse",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "properties": {}
    },
    "DataDayState": {
      "id": "DataDayState",
      "description": "A record containing date and state of the budget for this date.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Date of the data day corresponding to this record.",
          "$ref": "Date"
        },
        "budgetState": {
          "type": "string",
          "enum": [
            "BUDGET_STATE_UNSPECIFIED",
            "BUDGET_STATE_ENOUGH_BUDGET",
            "BUDGET_STATE_BUDGET_IS_NEARLY_EXHAUSTED",
            "BUDGET_STATE_OUT_OF_BUDGET"
          ],
          "description": "State of the budget for this data date.",
          "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."
          ]
        }
      }
    },
    "AdsDataLink": {
      "id": "AdsDataLink",
      "description": "Represents an advertising data link.",
      "type": "object",
      "properties": {
        "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"
          }
        },
        "platform": {
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ],
          "type": "string",
          "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."
        },
        "vendorClientId": {
          "description": "Vendor client ID, if any.",
          "type": "string"
        },
        "metrics": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Unspecified metric.",
              "Metric corresponding to Brand Lift.",
              "Metric corresponding to Brand Safety.",
              "Metric corresponding to Reach, where the customer is the advertiser.",
              "Metric corresponding to Viewability, where the customer is the advertiser.",
              "Metric corresponding to Reach, where the customer is the publisher/content provider.",
              "Metric corresponding to Viewability, where the customer is the publisher/content provider.",
              "Metric corresponding to Conversion Attribution, where the customer is the advertiser."
            ],
            "enum": [
              "METRIC_UNSPECIFIED",
              "BRAND_LIFT",
              "BRAND_SAFETY",
              "REACH",
              "VIEWABILITY",
              "PUBLISHER_REACH",
              "PUBLISHER_VIEWABILITY",
              "CONVERSION_ATTRIBUTION"
            ],
            "type": "string"
          },
          "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."
        },
        "linkedEntity": {
          "description": "Entity linked through this AdsDataLink.",
          "$ref": "Entity"
        },
        "createTime": {
          "description": "Time the link was created.",
          "type": "string",
          "format": "google-datetime"
        },
        "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"
        },
        "gmpExportScopes": {
          "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",
          "items": {
            "type": "string",
            "enum": [
              "GMP_EXPORT_SCOPE_UNSPECIFIED",
              "GMP_EXPORT_SCOPE_YT_TRUEVIEW",
              "GMP_EXPORT_SCOPE_DT"
            ],
            "enumDescriptions": [
              "Unspecified scope.",
              "Should export Display & Video 360 YouTube TrueView data.",
              "Should export Data Transfer data."
            ]
          }
        },
        "customerLink": {
          "description": "Customer link through which the linked data can be accessed. Only name, customer ID, and display_name are populated.",
          "$ref": "CustomerLink"
        },
        "parentEntity": {
          "$ref": "Entity",
          "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."
        },
        "status": {
          "description": "Status of the data link.",
          "enumDescriptions": [
            "Unspecified link status.",
            "The link request has not been answered.",
            "The link has been approved and is active.",
            "The link has been rejected."
          ],
          "type": "string",
          "enum": [
            "LINK_STATUS_UNSPECIFIED",
            "PENDING",
            "APPROVED",
            "REJECTED"
          ]
        },
        "updateTime": {
          "description": "Time the link status was last updated.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "CreateTempMatchedEventDataResponse": {
      "properties": {},
      "type": "object",
      "id": "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."
    },
    "StartAnalysisReportRequest": {
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "StartAnalysisReportRequest",
      "description": "Request to start execution on a stored analysis report."
    },
    "AddEventMatchersRequest": {
      "type": "object",
      "properties": {
        "eventMatchers": {
          "type": "array",
          "items": {
            "$ref": "EventMatcher"
          },
          "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."
        }
      },
      "id": "AddEventMatchersRequest",
      "description": "Request to add a constraint to a frequency-based user list."
    },
    "Status": {
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "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"
        }
      },
      "type": "object",
      "id": "Status",
      "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)."
    },
    "JobHistoryExportResponse": {
      "properties": {
        "destDataset": {
          "description": "Destination BigQuery dataset for the job history export.",
          "type": "string"
        },
        "destTable": {
          "description": "Destination BigQuery table for the job history export.",
          "type": "string"
        },
        "jobCount": {
          "type": "string",
          "format": "int64",
          "description": "Job count in the final output table."
        },
        "destProject": {
          "description": "Destination BigQuery project for the job history export.",
          "type": "string"
        }
      },
      "type": "object",
      "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."
    },
    "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": {
          "type": "array",
          "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]",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "RemarketingListInfo",
      "description": "Metadata for remarketing lists."
    },
    "Column": {
      "type": "object",
      "properties": {
        "columnId": {
          "description": "Column identifier.",
          "type": "string"
        },
        "columnType": {
          "description": "Column type.",
          "$ref": "FieldType"
        }
      },
      "id": "Column",
      "description": "Defines a Table column."
    },
    "FieldType": {
      "id": "FieldType",
      "description": "Defines a BigQuery field type.",
      "properties": {
        "type": {
          "description": "BigQuery simple type, e.g. 'STRING' or 'INT64'. See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types.",
          "type": "string"
        },
        "arrayType": {
          "description": "Type of the array's elements, if this is an 'ARRAY' type.",
          "$ref": "FieldType"
        },
        "structType": {
          "$ref": "StructType",
          "description": "Struct field type, if this is a 'STRUCT' type."
        }
      },
      "type": "object"
    },
    "DescribeValidFrequencyLimitingEventMatchersResponse": {
      "id": "DescribeValidFrequencyLimitingEventMatchersResponse",
      "description": "Response to a DescribeValidFrequencyLimitingEventMatchersRequest request.",
      "type": "object",
      "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"
        },
        "eventMatcherInfos": {
          "description": "List of units, each containing an event matcher along with its metadata",
          "type": "array",
          "items": {
            "$ref": "EventMatcherInfo"
          }
        }
      }
    },
    "ListOperationsResponse": {
      "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": {
          "type": "array",
          "items": {
            "$ref": "Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        }
      },
      "type": "object",
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations."
    },
    "DataAccessBudget": {
      "id": "DataAccessBudget",
      "description": "Data access budget state per date.",
      "type": "object",
      "properties": {
        "dataDayState": {
          "description": "Status of the budget by date.",
          "type": "array",
          "items": {
            "$ref": "DataDayState"
          }
        }
      }
    },
    "CheckConsentRequest": {
      "properties": {
        "consentType": {
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "description": "Consent type for which to check this panelist's status.",
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ]
        }
      },
      "type": "object",
      "id": "CheckConsentRequest",
      "description": "Request to check the consent status of a panelist."
    },
    "SubmitVendorAggregatesReportResponse": {
      "id": "SubmitVendorAggregatesReportResponse",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "properties": {}
    },
    "Dv360Dimensions": {
      "properties": {
        "lineItemIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional DV360 line item ids. If empty, reports on all line items for the specified time period."
        },
        "metricType": {
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited.",
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "type": "string",
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ]
        }
      },
      "type": "object",
      "id": "Dv360Dimensions",
      "description": "Filtering dimensions for DV360 platform."
    },
    "BatchRejectAdsDataLinksRequest": {
      "id": "BatchRejectAdsDataLinksRequest",
      "description": "Request to batch reject ads data links.",
      "properties": {
        "names": {
          "description": "Required. The resource names of the links to reject. A maximum of 100 links can be rejected in a batch.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "StartTransientAnalysisQueryRequest": {
      "id": "StartTransientAnalysisQueryRequest",
      "description": "Request to start execution of a transient analysis query.",
      "properties": {
        "destTable": {
          "description": "Destination BigQuery table for query results with the format 'project.dataset.table_name'. If specified, the project must be explicitly whitelisted for the customer's ADH account. If project is not specified, uses default project for the provided customer. If neither project nor dataset is specified, uses the default project and dataset.",
          "type": "string"
        },
        "query": {
          "description": "The query to execute.",
          "$ref": "AnalysisQuery"
        },
        "spec": {
          "description": "Defines the query execution parameters.",
          "$ref": "QueryExecutionSpec"
        }
      },
      "type": "object"
    },
    "PrivacyMessage": {
      "id": "PrivacyMessage",
      "description": "Privacy related information or warning message.",
      "properties": {
        "type": {
          "enum": [
            "PRIVACY_MESSAGE_TYPE_UNSPECIFIED",
            "TOUCHPOINT_ANALYSIS_EXCLUSIONS",
            "MERGE_ROW_NO_DATA_FILTERED",
            "MERGE_ROW_DATA_ON_FEW_USERS_FILTERED",
            "MERGE_ROW_ONE_ROW_WITH_MANY_USERS_FILTERED",
            "MERGE_ROW_NO_MERGE_SPEC",
            "MERGE_ROW_ADDED",
            "MERGE_ROW_TEMPORARILY_UNAVAILABLE",
            "LARGE_CREDIT_OUTLIER_USERS_FILTERED",
            "PRIVACY_MESSAGE_TEMPORARILY_UNAVAILABLE",
            "DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED",
            "TOO_MANY_REPEATED_COMPUTATIONS",
            "REPEATED_RESULTS_REDACTED"
          ],
          "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.",
            "Indicates that a noise result is redacted due to too many repetitions."
          ],
          "description": "Type of the message."
        },
        "details": {
          "description": "Text of the message.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ColumnInfo": {
      "id": "ColumnInfo",
      "description": "Metadata of a destination table column.",
      "properties": {
        "noiseImpact": {
          "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.",
          "enum": [
            "COLUMN_NOISE_IMPACT_UNSPECIFIED",
            "NOT_NOISED",
            "LOW_IMPACT",
            "HIGH_IMPACT"
          ],
          "type": "string"
        },
        "impactPercentage": {
          "description": "If applicable, the share this column contributes to the noise impact.",
          "type": "number",
          "format": "float"
        },
        "name": {
          "description": "The column name",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateConsentInviteCodeRequest": {
      "properties": {
        "consentType": {
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "description": "Consent type for which to generate an invite code.",
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ]
        }
      },
      "type": "object",
      "id": "GenerateConsentInviteCodeRequest",
      "description": "Request to generate a consent invite code for the specified panelist."
    },
    "ValidateAnalysisQueryRequest": {
      "id": "ValidateAnalysisQueryRequest",
      "description": "Request to validate an analysis query.",
      "type": "object",
      "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": "The query to validate.",
          "$ref": "AnalysisQuery"
        },
        "adsDataCustomerId": {
          "type": "string",
          "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
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Optional. The duplicated fields inside query_execution_spec will override the fields outside."
        },
        "matchDataCustomerId": {
          "type": "string",
          "format": "int64",
          "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
        }
      }
    },
    "GenerateDv360IvtVideoViewabilityReportRequest": {
      "properties": {
        "timeZone": {
          "description": "The time zone for the report start and end dates. If not specified, defaults to 'UTC'.",
          "type": "string"
        },
        "startDate": {
          "$ref": "Date",
          "description": "The first day of the generated report."
        },
        "lineItemIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Line item ids to report on."
        },
        "adsDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID that owns the ads data.",
          "type": "string",
          "format": "int64"
        },
        "endDate": {
          "$ref": "Date",
          "description": "The last day of the generated report, inclusive."
        },
        "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"
        }
      },
      "type": "object",
      "id": "GenerateDv360IvtVideoViewabilityReportRequest",
      "description": "Request to start the execution of a query to retrieve invalid traffic viewability metrics for the DV360 platform."
    },
    "CancelOperationRequest": {
      "properties": {},
      "type": "object",
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation."
    },
    "ValidateUserListQueryRequest": {
      "id": "ValidateUserListQueryRequest",
      "description": "Request to validate a user list query.",
      "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": {
          "$ref": "UserListQuery",
          "description": "The query to validate."
        },
        "adsDataCustomerId": {
          "type": "string",
          "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
        },
        "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"
        }
      },
      "type": "object"
    },
    "GenerateIvtReportRequest": {
      "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",
      "properties": {
        "dv360YoutubeDimensions": {
          "$ref": "Dv360Dimensions",
          "description": "Report on platform DV360."
        },
        "ytReserveDimensions": {
          "$ref": "YouTubeReserveDimensions",
          "description": "Report on platform YTR."
        },
        "endDate": {
          "$ref": "Date",
          "description": "The last day of the generated report, inclusive."
        },
        "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"
        },
        "googleAdsDimensions": {
          "description": "Report on platform Google Ads.",
          "$ref": "GoogleAdsDimensions"
        },
        "dateDimensionGranularity": {
          "description": "Optional. The granularity of the IVT report's date dimension. Defaults to DAY if UNSPECIFIED.",
          "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."
          ],
          "type": "string",
          "enum": [
            "DATE_DIMENSION_GRANULARITY_UNSPECIFIED",
            "DAY",
            "ENTIRE_DATE_RANGE"
          ]
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID that owns the ads data."
        },
        "startDate": {
          "$ref": "Date",
          "description": "The first day of the generated report."
        }
      },
      "type": "object"
    },
    "SubmitBrandSafetyScoresRequest": {
      "id": "SubmitBrandSafetyScoresRequest",
      "description": "Request to submit a Vendor Brand Safety Scores file.",
      "properties": {
        "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"
        },
        "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 for the score file."
        },
        "sourceTable": {
          "description": "Required. Source BigQuery table for query results in the format 'project.dataset.table_name'.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateConsentInviteCodeResponse": {
      "id": "GenerateConsentInviteCodeResponse",
      "description": "Response to a GenerateConsentInviteCode operation.",
      "type": "object",
      "properties": {
        "consentInviteCode": {
          "description": "Unique code for inviting panelist to give consent. Generation of this code is idempotent for a given panelist.",
          "type": "string"
        }
      }
    },
    "Customer": {
      "type": "object",
      "properties": {
        "customerId": {
          "description": "Ads Data Hub customer ID.",
          "type": "string",
          "format": "int64"
        },
        "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"
        }
      },
      "id": "Customer",
      "description": "An Ads Data Hub customer."
    },
    "ListAnalysisQueriesResponse": {
      "type": "object",
      "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": {
          "type": "array",
          "items": {
            "$ref": "AnalysisQuery"
          },
          "description": "A list of queries."
        }
      },
      "id": "ListAnalysisQueriesResponse",
      "description": "Response to a ListDataQueries request. Contains the queries owned by the specified customer."
    },
    "ListTempTablesResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "tables": {
          "type": "array",
          "items": {
            "$ref": "TempTable"
          },
          "description": "A list of tables."
        }
      },
      "id": "ListTempTablesResponse",
      "description": "Response to a ListTempTables request."
    },
    "UpdateCrmBasedUserListMembershipsRequest": {
      "properties": {
        "jobId": {
          "description": "Optional. User-specified job ID. This should be unique at the customer level.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "UpdateCrmBasedUserListMembershipsRequest",
      "description": "Request to update memberships for a CRM based list."
    },
    "ValidateAnalysisQueryResponse": {
      "properties": {
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        },
        "filteredRowSummary": {
          "$ref": "FilteredRowSummary",
          "description": "Filtered row summary that would be used when the query is executed: the rows that are not sufficiently aggregated are dropped from the result, filtered row summary describes how to summarize these rows. For details see https://developers.google.com/ads-data-hub/guides/legacy-diff-checks#filtered_row_summary."
        },
        "warningsStatus": {
          "type": "array",
          "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
        },
        "destParamNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "processedBytes": {
          "type": "string",
          "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
        },
        "status": {
          "type": "array",
          "items": {
            "$ref": "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": "object",
      "id": "ValidateAnalysisQueryResponse",
      "description": "Response to a ValidateAnalysisQuery request."
    },
    "SubmitBrandSafetyScoresResponse": {
      "properties": {},
      "type": "object",
      "id": "SubmitBrandSafetyScoresResponse",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import."
    },
    "ParameterType": {
      "properties": {
        "type": {
          "$ref": "FieldType",
          "description": "Parameter field type."
        },
        "defaultValue": {
          "description": "Optional. Value that should be used if no parameter value is provided.",
          "$ref": "ParameterValue"
        },
        "description": {
          "description": "Optional. Parameter description.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ParameterType",
      "description": "Information about a specific query parameter."
    },
    "ColumnSummaryRule": {
      "properties": {
        "value": {
          "description": "The constant value to use (only valid for CONSTANT summary type).",
          "$ref": "ParameterValue"
        },
        "type": {
          "enum": [
            "SUMMARY_TYPE_UNSPECIFIED",
            "CONSTANT",
            "SUM"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified summary type. The summary column value will be NULL.",
            "Replace merged column value with the given constant.",
            "Take the sum of the merged column values."
          ],
          "description": "Method used to combine the values for the column."
        }
      },
      "type": "object",
      "id": "ColumnSummaryRule",
      "description": "Merge instructions for a single output column."
    },
    "SubmitBrandLiftReportMetadata": {
      "id": "SubmitBrandLiftReportMetadata",
      "description": "Metadata for customer brand lift report submission request associated with each operation.",
      "type": "object",
      "properties": {
        "benchmark": {
          "description": "Request for brand lift quarter benchmark report submission.",
          "$ref": "SubmitBrandLiftBenchmarkRequest"
        },
        "startTime": {
          "description": "Import start time.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Import end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "studyReport": {
          "description": "Request for brand lift study report submission.",
          "$ref": "SubmitBrandLiftStudyReportRequest"
        }
      }
    },
    "BatchApproveAdsDataLinksRequest": {
      "id": "BatchApproveAdsDataLinksRequest",
      "description": "Request to batch approve ads data links.",
      "type": "object",
      "properties": {
        "names": {
          "description": "Required. The resource names of the links to approve. A maximum of 100 links can be approved in a batch.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "FilteredRowSummary": {
      "properties": {
        "columns": {
          "type": "object",
          "description": "Instructions for merging each column, keyed by name. Any missing columns will be treated as SUMMARY_TYPE_UNSPECIFIED.",
          "additionalProperties": {
            "$ref": "ColumnSummaryRule"
          }
        }
      },
      "type": "object",
      "id": "FilteredRowSummary",
      "description": "Merge instructions for an analysis query result schema."
    },
    "EventMatcherInfo": {
      "properties": {
        "eventMatcherMetadata": {
          "description": "Metadata for the event matcher.",
          "$ref": "EventMatcherMetadata"
        },
        "eventMatcher": {
          "$ref": "EventMatcher",
          "description": "Event matcher containing the constraint type and valid constraint ID."
        }
      },
      "type": "object",
      "id": "EventMatcherInfo",
      "description": "Event matcher along with its metadata."
    },
    "Consent": {
      "properties": {
        "acceptTime": {
          "description": "Time at which the panelist first accepted an invitation to give consent.",
          "type": "string",
          "format": "google-datetime"
        },
        "type": {
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "description": "Type of this consent.",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "Consent",
      "description": "Represents a panelist’s consent for a particular consent use case."
    },
    "Schedule": {
      "id": "Schedule",
      "description": "Schedule used to execute a query based on the given cron_expression.",
      "type": "object",
      "properties": {
        "state": {
          "enumDescriptions": [
            "The default / unset value.",
            "Schedule is active and running.",
            "Schedule is currently paused and not running."
          ],
          "description": "State of the schedule.",
          "enum": [
            "UNSPECIFIED",
            "ACTIVE",
            "PAUSED"
          ],
          "type": "string"
        },
        "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"
        },
        "timeZone": {
          "$ref": "TimeZone",
          "description": "Optional. If not specified, defaults to 'UTC'."
        },
        "name": {
          "description": "Output only. Immutable. Name that uniquely identifies a schedule. Format: customers/{customer_id}/analysisQueries/{query_id}/report/schedule",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "SubmitBrandLiftStudyReportRequest": {
      "type": "object",
      "properties": {
        "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"
        },
        "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 study report is for."
        },
        "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"
        }
      },
      "id": "SubmitBrandLiftStudyReportRequest",
      "description": "Request to submit a customer generated brand lift study report."
    },
    "Empty": {
      "type": "object",
      "properties": {},
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
    },
    "StartUserListQueryRequest": {
      "type": "object",
      "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"
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Defines the query execution parameters."
        },
        "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"
        }
      },
      "id": "StartUserListQueryRequest",
      "description": "Request to start execution on a stored user list query."
    },
    "CrmBasedUserListQuery": {
      "id": "CrmBasedUserListQuery",
      "description": "Defines a CRM based user list query that can be executed within Ads Data Hub.",
      "type": "object",
      "properties": {
        "queryState": {
          "description": "Query state.",
          "enumDescriptions": [
            "Query state is unspecified.",
            "Query is available to be run by the customer.",
            "Query has been manually reviewed for safety."
          ],
          "type": "string",
          "enum": [
            "QUERY_STATE_UNSPECIFIED",
            "RUNNABLE",
            "WHITELISTED"
          ]
        },
        "updateEmail": {
          "description": "Output only. Email address of user who last updated the query.",
          "readOnly": true,
          "type": "string"
        },
        "queryText": {
          "description": "Query text written in Standard SQL. See https://cloud.google.com/bigquery/docs/reference/standard-sql/.",
          "type": "string"
        },
        "title": {
          "description": "Query title, which is unique within a single Ads Data Hub customer and query type.",
          "type": "string"
        },
        "name": {
          "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.",
          "readOnly": true,
          "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]",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Immutable. Time the query was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "queryShare": {
          "type": "array",
          "items": {
            "$ref": "QueryShare"
          },
          "description": "Indicates ways that a query may be shared beyond the owning Ads Data Hub customer."
        },
        "updateTime": {
          "description": "Output only. Time the query was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of user who created the query.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "SubmitVendorReportIdMappingResponse": {
      "id": "SubmitVendorReportIdMappingResponse",
      "description": "Response stored in longrunning.Operation for successful enqueue of an import.",
      "type": "object",
      "properties": {}
    },
    "ExportEventsRequest": {
      "properties": {
        "endDate": {
          "$ref": "Date",
          "description": "Required. The end date (inclusive) for the export."
        },
        "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": {
          "description": "Required. The start date (inclusive) for the export.",
          "$ref": "Date"
        },
        "metric": {
          "type": "string",
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ],
          "description": "Required. Type of metric data to export. Supported metric types are: BRAND_LIFT, BRAND_SAFETY, and VIEWABILITY.",
          "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."
          ]
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Required. Linked Ads Data Hub customer ID that owns the ads data."
        },
        "platform": {
          "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.",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "GOOGLE_ADS",
            "GOOGLE_MARKETING_PLATFORM",
            "YOUTUBE_RESERVE",
            "GOOGLE_AD_MANAGER",
            "FREEWHEEL"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "ExportEventsRequest",
      "description": "Request to export panelists event level data."
    },
    "ParameterValue": {
      "type": "object",
      "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"
        }
      },
      "id": "ParameterValue",
      "description": "Represents a BigQuery parameter value."
    },
    "EventMatcherMetadata": {
      "properties": {
        "entity": {
          "description": "Linked entity from AdsDataLink.",
          "$ref": "Entity"
        },
        "displayName": {
          "description": "Name in the underlying data store for the constraint. This could be a campaign name, a line item name etc.",
          "type": "string"
        },
        "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"
        }
      },
      "type": "object",
      "id": "EventMatcherMetadata",
      "description": "Metadata for the event matcher."
    },
    "CreateTempMatchedEventDataRequest": {
      "type": "object",
      "properties": {
        "startDate": {
          "description": "The start 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"
        },
        "endDate": {
          "description": "The end date (inclusive) for creating panelist model training data.",
          "$ref": "Date"
        }
      },
      "id": "CreateTempMatchedEventDataRequest",
      "description": "Request to create temp table with panelist matched event data."
    },
    "TimeZone": {
      "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"
        }
      },
      "id": "TimeZone",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones)."
    },
    "ValidateCrmBasedUserListQueryResponse": {
      "id": "ValidateCrmBasedUserListQueryResponse",
      "description": "Response to a ValidateCrmBasedUserListQuery request.",
      "type": "object",
      "properties": {
        "queryPerformanceInfo": {
          "$ref": "QueryPerformanceInfo",
          "description": "Returned if include_performance_info is true."
        }
      }
    },
    "SubmitVendorReportIdMappingRequest": {
      "type": "object",
      "properties": {
        "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"
        },
        "customer": {
          "description": "Required. Ads Data Hub customer making the request. This is in the form of 'customers/[customer_id]'. e.g. 'customers/123'.",
          "type": "string"
        },
        "metric": {
          "enum": [
            "METRIC_UNSPECIFIED",
            "BRAND_LIFT",
            "BRAND_SAFETY",
            "REACH",
            "VIEWABILITY",
            "PUBLISHER_REACH",
            "PUBLISHER_VIEWABILITY",
            "CONVERSION_ATTRIBUTION"
          ],
          "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."
          ],
          "description": "Optional. Metric which the table is reporting. Defaults to REACH if not populated."
        },
        "date": {
          "description": "Required. Date that the daily report ID mapping 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. 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."
    },
    "Table": {
      "id": "Table",
      "description": "Defines a table that can be queried.",
      "type": "object",
      "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"
        },
        "columns": {
          "description": "A list of table columns.",
          "type": "array",
          "items": {
            "$ref": "Column"
          }
        },
        "tablePath": {
          "description": "Fully qualified table path, e.g. 'adh.google_ads_impressions'.",
          "type": "string"
        }
      }
    },
    "RemoveRecipientsRequest": {
      "id": "RemoveRecipientsRequest",
      "description": "Request to remove recipients for a UserList.",
      "properties": {
        "recipientAdsDataLinks": {
          "description": "Remove linked entities from the specified user_list’s recipients. customers/[customer_id]/adsDataLinks/[resource_id]",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "UserList": {
      "id": "UserList",
      "description": "Defines an Ads Data Hub-managed user list.",
      "properties": {
        "state": {
          "description": "Output only. State of the user list (Active/Deleted). This value is Read Only and will accessible on get/list requests.",
          "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,
          "enum": [
            "STATE_UNSPECIFIED",
            "STATE_ACTIVE",
            "STATE_DELETED"
          ],
          "type": "string"
        },
        "crmList": {
          "$ref": "CrmBasedListInfo",
          "description": "Customer Matching user list."
        },
        "createEmail": {
          "description": "Output only. Immutable. Email address of the user that created this user list.",
          "readOnly": true,
          "type": "string"
        },
        "remarketingList": {
          "description": "Remarketing list.",
          "$ref": "RemarketingListInfo"
        },
        "title": {
          "description": "Required. User list title, which is unique for the specified ads_data_customer_id.",
          "type": "string"
        },
        "listSize": {
          "description": "Output only. The number of users on the user list. List size update may be delayed.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "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."
        },
        "populateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Time the list was last populated.",
          "readOnly": true
        },
        "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"
          }
        },
        "type": {
          "enum": [
            "USER_LIST_TYPE_UNSPECIFIED",
            "REMARKETING",
            "FREQUENCY_BASED",
            "CRM_BASED"
          ],
          "type": "string",
          "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."
          ],
          "readOnly": true,
          "enumDeprecated": [
            false,
            false,
            true,
            false
          ],
          "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."
        },
        "frequencyList": {
          "$ref": "FrequencyBasedListInfo",
          "description": "User list for frequency capping.",
          "deprecated": true
        },
        "name": {
          "type": "string",
          "description": "Output only. Immutable. Name that uniquely identifies an Ads Data Hub user list. It has the form customers/[customer_id]/userLists/[user_list_id]",
          "readOnly": true
        },
        "userListId": {
          "description": "Output only. Immutable. User list ID. This field is generated by the service and is used to populate the UserList.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "description": {
          "description": "Required. User list description.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SubmitVendorReportIdMappingMetadata": {
      "id": "SubmitVendorReportIdMappingMetadata",
      "description": "Metadata for Customer Report ID Mapping submission request associated with each operation.",
      "properties": {
        "endTime": {
          "description": "Import end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "request": {
          "description": "Request for Report Id Mapping submission.",
          "$ref": "SubmitVendorReportIdMappingRequest"
        },
        "startTime": {
          "description": "Import start time.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "type": "object"
    },
    "ListAdsDataLinksResponse": {
      "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"
        }
      },
      "id": "ListAdsDataLinksResponse",
      "description": "Response to a ListAdsDataLinks request."
    },
    "YouTubeReserveDimensions": {
      "properties": {
        "orderIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional YouTube Reserve order ids. If empty, reports on all orders for the specified time period."
        },
        "metricType": {
          "enum": [
            "METRIC_TYPE_UNSPECIFIED",
            "METRIC_TYPE_IMPRESSION",
            "METRIC_TYPE_YOUTUBE_VIEW"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified metric type.",
            "Google Ads impression data.",
            "YouTube views a.k.a. TrueView views."
          ],
          "description": "Designates the platform to measure and report on. The METRIC_TYPE_IMPRESSION report is MRC-accredited."
        }
      },
      "type": "object",
      "id": "YouTubeReserveDimensions",
      "description": "Filtering dimensions for YouTube Reserve platform."
    },
    "Outage": {
      "id": "Outage",
      "description": "Defines an outage and its information.",
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of this outage.",
          "enumDescriptions": [
            "The outage type is not specified.",
            "Certain Ads Data Hub UI is not accessible.",
            "Ads Data Hub query related service is down.",
            "Ads Data Hub data-transfer is out of service layer agreement (SLA).",
            "Certain fields are not populating in Ads Data Hub.",
            "Ads Data Hub account linking related service is down.",
            "Ads Data Hub non-data-transfer is out of service layer agreement (SLA)."
          ],
          "type": "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"
          ]
        },
        "name": {
          "description": "Name that uniquely identifies an outage. It has the form outages/[outage_id], e.g. 'outages/1234'.",
          "type": "string"
        },
        "details": {
          "description": "Message describing this outage.",
          "type": "string"
        },
        "startTime": {
          "description": "The absolute point in time when the outage started.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The absolute point in time when the outage ended or will end. If empty or in the future, then it means the outage is still on going."
        }
      }
    },
    "BatchRejectAdsDataLinksResponse": {
      "properties": {
        "links": {
          "type": "array",
          "items": {
            "$ref": "AdsDataLink"
          },
          "description": "Links updated."
        }
      },
      "type": "object",
      "id": "BatchRejectAdsDataLinksResponse",
      "description": "Response to a BatchUpdateAdsDataLinks request."
    },
    "ArrayValue": {
      "id": "ArrayValue",
      "description": "Defines an array parameter value.",
      "type": "object",
      "properties": {
        "values": {
          "description": "The array values.",
          "type": "array",
          "items": {
            "$ref": "ParameterValue"
          }
        }
      }
    },
    "StartTransientUserListQueryRequest": {
      "id": "StartTransientUserListQueryRequest",
      "deprecated": true,
      "description": "Request to start execution of a transient user list query. DEPRECATED - use StartUserListQuery instead of StartTransientUserListQuery.",
      "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"
        },
        "query": {
          "$ref": "UserListQuery",
          "description": "The query to execute."
        },
        "spec": {
          "$ref": "QueryExecutionSpec",
          "description": "Defines the query execution parameters."
        }
      },
      "type": "object"
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "response": {
          "type": "object",
          "description": "A QueryResponse object, returned if the query operation is successful.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "metadata": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "A QueryMetadata object containing service-specific data associated with the operation.",
          "type": "object"
        },
        "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"
        }
      },
      "type": "object"
    },
    "TempTable": {
      "properties": {
        "matchDataCustomerId": {
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query.",
          "type": "string",
          "format": "int64"
        },
        "tablePath": {
          "description": "Fully qualified table path, e.g. 'tmp.table'",
          "type": "string"
        },
        "queryType": {
          "enumDescriptions": [
            "No query type specified.",
            "An AnalysisQuery.",
            "A UserListQuery.",
            "A query triggered by a 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.",
          "enum": [
            "QUERY_TYPE_UNSPECIFIED",
            "ANALYSIS",
            "USER_LIST",
            "SPECIAL_ENDPOINT"
          ],
          "type": "string"
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "Column"
          },
          "description": "A list of table columns."
        },
        "operation": {
          "description": "Operation that created the temp table. It has the form operations/[jobId]",
          "type": "string"
        },
        "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"
        },
        "createTime": {
          "description": "Timestamp when the temp table is created, in micros.",
          "type": "string",
          "format": "google-datetime"
        },
        "adsDataCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Linked Ads Data Hub customer ID used when executing the original temp table query."
        },
        "usableQueryTypes": {
          "description": "Types of queries that can access this temp table. If empty, this temp table is only accessible to queries of the same type as its query_type.",
          "type": "array",
          "items": {
            "enumDescriptions": [
              "No query type specified.",
              "An AnalysisQuery.",
              "A UserListQuery.",
              "A query triggered by a special endpoint."
            ],
            "enum": [
              "QUERY_TYPE_UNSPECIFIED",
              "ANALYSIS",
              "USER_LIST",
              "SPECIAL_ENDPOINT"
            ],
            "type": "string"
          }
        }
      },
      "type": "object",
      "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."
    },
    "ListCrmBasedUserListQueriesResponse": {
      "id": "ListCrmBasedUserListQueriesResponse",
      "description": "Response to a ListCrmBasedUserListQueries request. Contains the queries owned by the specified customer, sorted by title.",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be used to request the next results page. This field is empty if there are no additional results.",
          "type": "string"
        },
        "queries": {
          "type": "array",
          "items": {
            "$ref": "CrmBasedUserListQuery"
          },
          "description": "A list of queries."
        }
      },
      "type": "object"
    },
    "CheckConsentResponse": {
      "id": "CheckConsentResponse",
      "description": "Response to a CheckConsentStatus operation.",
      "type": "object",
      "properties": {
        "consent": {
          "$ref": "Consent",
          "description": "Details of the consent status of this panelist."
        }
      }
    },
    "StructType": {
      "id": "StructType",
      "description": "Defines a struct type.",
      "properties": {
        "fields": {
          "description": "An ordered list of fields for a given struct.",
          "type": "array",
          "items": {
            "$ref": "StructField"
          }
        }
      },
      "type": "object"
    },
    "OutputArtifacts": {
      "type": "object",
      "properties": {
        "tempTables": {
          "description": "Defines list of temp tables created by an Ads Data Hub query.",
          "type": "array",
          "items": {
            "$ref": "TempTable"
          }
        }
      },
      "id": "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."
    },
    "RevokeConsentRequest": {
      "id": "RevokeConsentRequest",
      "description": "Request to revoke consent for a panelist.",
      "properties": {
        "consentType": {
          "description": "Type of consent to revoke for this panelist.",
          "enumDescriptions": [
            "Unknown consent type.",
            "Consent applies to sharing ad exposure data.",
            "Consent applies to sharing ad exposure data for test accounts. This applies to VIEWABILITY and BRAND_SAFETY use cases.",
            "For testing consent flow only. Does not provide any data access."
          ],
          "type": "string",
          "enum": [
            "CONSENT_TYPE_UNKNOWN",
            "CONSENT_TYPE_AD_EXPOSURE",
            "CONSENT_TYPE_AD_EXPOSURE_VENDOR_TEST_ACCOUNT",
            "CONSENT_TYPE_TEST_CONSENT"
          ]
        }
      },
      "type": "object"
    }
  },
  "mtlsRootUrl": "https://adsdatahub.mtls.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "revision": "20260707",
  "batchPath": "batch",
  "discoveryVersion": "v1",
  "servicePath": "",
  "version": "v1",
  "basePath": "",
  "canonicalName": "Ads Data Hub",
  "parameters": {
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "description": "V1 error format."
    },
    "prettyPrint": {
      "location": "query",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true"
    },
    "alt": {
      "location": "query",
      "description": "Data format for response.",
      "default": "json",
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "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."
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    }
  },
  "rootUrl": "https://adsdatahub.googleapis.com/",
  "id": "adsdatahub:v1",
  "baseUrl": "https://adsdatahub.googleapis.com/",
  "documentationLink": "https://developers.google.com/ads-data-hub/",
  "description": "API for executing Ads Data Hub queries.",
  "ownerDomain": "google.com",
  "name": "adsdatahub"
}
