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