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